• Announcements

    • Lars

      Allgemeine Forenregeln   03/13/2017

      Forenregeln Nimm dir bitte einen Moment um die nachfolgenden Regeln durchzulesen. Wenn du diese Regeln akzeptierst und die Registration fortsetzen willst, klick einfach auf den "Mit der Registrierung fortfahren"-Button. Um diese Registration abzubrechen, klick bitte einfach auf den "Zurück" Button deines Browsers. Wir garantieren nicht für die Richtigkeit, Vollständigkeit und Brauchbarkeit der Nachrichten und sind auch nicht dafür verantwortlich. Die Beiträge drücken die Meinung des Autors des Beitrags aus, nicht zwangsläufig das, wofür die Forensoftware steht. Jeder Nutzer, der denkt, dass ein veröffentlichter Beitrag unzulässig bzw. störend ist, ist aufgefordert uns unverzüglich per E-Mail zu kontaktieren. Wir haben das Recht störende Beiträge zu löschen und bemühen uns, das in einem realistischem Zeitraum zu erledigen (sofern wir beschlossen haben, dass die Löschung notwendig ist). Du akzeptierst, durchgehend während der Nutzung dieses Services, dass du dieses Forum nicht dazu missbrauchen wirst, Inhalte zu veröffentlichen, welche bewusst falsch und/oder verleumderisch, ungenau, beleidigend, vulgär, hasserfüllt, belästigend, obszön, sexuell belästigend, bedrohlich, die Privatsphäre einer Person verletzend oder in irgend einer Art und Weise das Gesetz verletzen. Des Weiteren akzeptierst du, dass du keine urheberrechtlich geschützte Inhalte ohne Erlaubnis des Besitzers in diesem Forum veröffentlichst. Mit dem Klick auf den "Mit der Registrierung fortfahren"-Button, akzeptierst du zudem unsere Datenschutzerklärung und stimmst der Speicherung deiner IP-Adresse und personenbezogenen Daten zu, die dafür benötigt werden, um dich im Falle einer rechtswidrigen Tat zurückverfolgen zu können bzw. permanent oder temporär aus dem Forum ausschließen zu können. Es besteht keine Pflicht zur Abgabe der Einwilligung, dies erfolgt alles auf freiwilliger Basis.   Zusatzinformationen Der Forenbetreiber hat das Recht, Nutzer ohne Angabe von Gründen permanent aus dem Forum auszuschließen. Des Weiteren hat er das Recht, Beiträge, Dateianhänge, Umfrage, Blogeinträge, Galleriebilder oder Signaturen ohne Angabe von Gründen zu entfernen. Mit der Registrierung verzichtest du auf alle Rechte an den von dir erstellten Inhalten, bzw. treten diese an das Unity-Insider.de und Unity-Community.de ab. Dies bedeutet im Klartext, dass das Unity-Insider.de und Unity-Community.de frei über deine Texte verfügen kann, sofern diese nicht wiederum die Rechte anderer verletzen. Es besteht weiterhin kein Anspruch von registrierten Nutzern bzw. ehemaligen registrierten Nutzern darauf, dass erstellte Inhalte und/oder die Mitgliedschaft (User) wieder gelöscht werden (Erhaltung der Konsistenz dieses Forums).   Einwilligungserklärung Wenn du mit der Speicherung deiner personenbezogenen Daten sowie den vorstehenden Regeln und Bestimmungen einverstanden bist, kannst du mit einem Klick auf den Mit der Registrierung fortfahren-Button unten fortfahren. Ansonsten drücke bitte Zurück. Stand: 07.03.2011

AniProGuy2

Members
  • Content count

    48
  • Joined

  • Last visited

Community Reputation

1 Neutral

About AniProGuy2

  • Rank
    Advanced Member
  1. Hallo liebe Community, Ich bin gerade dabei, meinem Spiel eine eigene "Settings" funktion zu geben, also einfach eine gewisse personale Einstellbarkeit. Die dazugehörigen Werte speichere ich in einer hastable (und später dann in einer .txt), was auch super funktioniert. Allerdings ist es nun so, dass ich diese Hashtable gern auslesen würde und einige Werte dort als Strings gespeichert werden. Ein bestes Beispiel ist die Einstellung, ob Chatlogs in Spielelobbies gespeichert werden sollen oder nicht. Der entsprechende Wert ist ein String und kommt aus einem Dropdown-Menü. Diesen speichere ich dann in der Hashtable. Wenn ich ihn nun auslese und zurück zu einem String konvertiere, kann ich diesen aber nicht abfragen. Es kommt zwar kein Error, aber die Abfrage kann niemals einen postiven Wert erhalten, also true werden. Ich versteh nicht so ganz warum, aber es schonmal kein Fehler in der Abfrage, denn der Wert wird richtig abgefragt. Wenn ich allerdings eine Integer abspeichere, sie aus der Hashtable zu einem String konvertiere und dann zu einer integer, kann ich sie abfragen. Ich verstehe das nicht so ganz, da ich auch erst seit kurzem mit Hashtables arbeite. Ich würde mich sehr freuen, wenn mir hier jemand weiterhelfen und es mir ggF. auch gleich richtig erklären könnte ^^ MfG, AniProGuy2 Mein Code: (die Console gibt mir nicht die "1" aus, auch wenn der Wert in der Hashtable eigentlich der Richtige ist) if (settings["SaveLobbyChatLog"].ToString() == "Don't save") print (1);
  2. Hallo Cummunity, Ich habe ein kleines Problem (mal wieder ^^). Und zwar möchte ich bei meinem Spiel alle offenen Spiele (Rooms) in einer Liste haben. Das funktioniert soweit auch ganz gut, sofern ich für die List-Items nur die jeweiligen RoomOptions auslese (die Rooms selbst bekomme ich ja durch PhotonNetwork.GetRoomList). Nun möchte ich aber auch, dass dort der Name des Hosts angezeigt wird, welchen man in den Spieleeinstellungen festlegen kann. Sprich, ich möchte für den Raum einen extra String anlegen, der diesen Namen speichert. Ich habe mich im Internet belesen und gehe nun davon aus, dass das über Custom Properties funktionieren sollte. Das Problem ist, dass ich nicht so ganz verstanden habe, wie man diese anlegt. Ich habe einen Hasthable und dort ein Objekt Namens "HostName" mit einem String für den Namen angelegt. Nun möchte diesen von einem anderen Clienten, der die Liste mit den Spielen offen hat, auslesen. Aber wie genau geht das? So, wie ich es bis jetzt mache, kommt die Fehlermeldung "NullReferenceException: Object reference not set to an instance of an object" Meine Scripte: Zum Hosten des Raumes: ExitGames.Client.Photon.Hashtable props = new ExitGames.Client.Photon.Hashtable(); props.Add ("HostName", "TestHost"); RoomOptions newOptions = new RoomOptions () { IsVisible = true, MaxPlayers = 5 , CustomRoomProperties = props}; PhotonNetwork.JoinOrCreateRoom ("test1", newOptions, TypedLobby.Default); Zum Auslesen des Hostnamens: item.GetComponent<NetworkListItem> ().Initialize (game.Name, game.CustomProperties["HostName"].ToString(), game.MaxPlayers, game.PlayerCount); Ich bin dankbar für jede Hilfe MfG, AniProGuy2
  3. Danke für die Korrektur ^^ Ich kenne es aus dem Informatikunterricht als "Anstoßen" aber das ist ja eigentlich auch egal. Ich werde es einmal damit versuchen, danke für den schnellen Rat!
  4. Hallo Community, Meine Frage ist eigentlich fast selbsterklärend. Ich möchte für mein Spiel ein Script anfertigen (bzw. habe es schon soweit fertig), das als Schnittstelle für Interaktionen dient (z.B. etwas steuern). Dazu wäre es hilfreich, wenn man in eine Liste Components/ Scripte legen kann, bei denen dann Voids angestoßen werden, wie z.B. "UserJoined", "UserQuitted" usw. Welche Scripte in diese Liste gelegt werden, ist dabei variabel und vorher nicht definiert. Es ist nur wichtig, dass die Voids angestoßen werden, und was dann damit gemacht wird, hängt dann vom jeweiligen Script ab. Meine Frage ist nun: ist das möglich? Also Voids in Scripten anstoßen, die vorher nicht definiert sind? Ich habe dazu nichts gefunden und wäre für jede Hilfe dankbar. MfG, AniProGuy2
  5. Hallo Community, Ich befasse mich seit einiger Zeit mit der Photon Engine und würde diese gern zur Entwicklung meines Multiplayers nutzen. Es ist nun so, dass ich meine Spieler am Anfang spawne und diese mehrere Avatare haben, die ebenfalls zu beginn instantiatet werden. Nun will ich auf diese zugreifen und nutze dabei gezwungenermaßen für RPC die View Ids. Das Problem ist dabei aber, dass diese bei 1001 anfangen, was ich nicht so ganz verstehe. Ich habe 1.) keine 20 Objekte zu Beginn in der Scene, die ebenfalls eine Photon View haben und 2.) ist das Limit auf 1000 gesetzt. Müsste nicht eigentlich das neu gespawnte Objekt eine ID von sagen wir 20 haben, wenn die zuvor höchste ID 19 war? Wenn ich auf die Objekte über ihre ID zugreifen will, dann beginnt es bei 1001 wieder von vorn und gibt mir das Objekt mit der ID 1. Habe ich einen Fehler gemacht oder habe ich da etwas falsch verstanden? Ich bin dankbar für jede Hilfe! MfG, AniProGuy2 Ps.: Hier habe ich mal sicherheitshalber den Code für das Spawnen des Players, auch wenn der eigentlich ganz normal sein sollte. GameObject player = PhotonNetwork.Instantiate ("NetworkPlayer", transform.position, transform.rotation, 0);
  6. Hallo lieber Unity-Community, Ich habe mal wieder eine Frage. Und zwar bin ich es von der Blender Game Engine gewohnt, dass ich Animationen an eine Variable anpassen kann. Sprich dass die Animation nicht regulär abgespielt wird, sondern sich immer auf dem Frame befindet, der den Wert der Variable hat. Das war sehr nützlich, z.B. wenn man Dinge steuern sollte. Genau das versuche ich nun mit einem Modell in Unity. Und zwar gibt es dort mehrere Zahnräder, die ineinander greifen und letztlich ein bewegliches Teil (Zielvorrichtung) rotieren. Ich wollte, daher eine Animation erstellen, bei der sich der bewegliche Kopf einmal so weit, wie er es kann, nach oben und nach unten rotiert. Diese Animation wollte ich dann über eine Variable an die Mausbewegung anpassen, damit man das Ganze gut steuern kann. Meine Frage ist nun, ist das überhaupt möglich? Oder gibt es da bessere Möglichkeiten, um das umzusetzen? Ich bin wie immer dankbar für jede Hilfe! MfG, AniProguy2
  7. [Danke für die Hilfe ^^ Ich mache das jetzt erstmal mit dem Kinematic und versuche mal, ob ich noch was anderes finde, das besser funktioniert.
  8. Hallo liebe Community! Zuallererst wünsche ich euch natürlich frohe Weihnachten! Wie ihr im Titel schon lesen könnt, möcht ich in meinem Spiel die Möglichkeit integrieren, etwas zu schieben. Das ist dabei aber nicht einfach ein "dagegenlaufen", sondern eine richtige Interaktion (im spielerischen Sinne). Der Spieler wird also hinter das Objekt gesetzt und bewegt es dann. Bisher habe ich es so gemacht, dass bei der Interaktion der Spieler an die Position eines Empty gesetzt wird (sprich hinter das Objekt) und dann natürlich auch entsprechend dessen rotiert wird. Danach wird das Objekt an Spieler geparented und als Rotationspunkt der Mittelpunkt des zu schiebenden Objektes gesetzt. Man steht also nun dahinter und kann sich um die Achse es Objektes drehen. Was ich nun versuche ist, dass man sich damit bewegen kann. Theoretisch funktioniert das ja automatisch, weil der Spieler über Root Motion gesteuert wird und sich da geparentete Objekt natürlich mit bewegt. Allerdings ist es nun so, dass wenn man gegen etwas läuft (also mit dem zu schiebenden Objekt) sich die Position des Spielers ändert und er nicht mehr hinter dem Objekt steht. Und genau das will ich beheben. Man soll quasi wenn das zu schiebende Objekt sich nicht mehr bewegen kann, sich ebenfalls nicht mehr bewegen können (also in die entsprechende Richtung, z.B. wenn man frontal gegen eine Wand läuft). Den Spieler an das Objekt zu parenten möchte ich nicht machen, weil es da Probleme mit der Steuerung gab (weil der Spieler einen Charakter Controller hat und das Objekt ein RigidBody ist). Wisst ihr, wie ich das machen kann? Zur Hilfe habe hier ich mal das bisherige Bewegungsscript für euch: using UnityEngine; using System.Collections; public class VehicleMovement : MonoBehaviour { public GameObject pushPosition; public Interaction interaction; public Rigidbody physics; private ClonkSettings settings; void Update () { // if the vehicle is in use if (interaction.inUse == true) { if (interaction.start == true) { settings = interaction.user.GetComponent<ClonkSettings> (); settings.rotYAxis = transform.gameObject; settings.blockJump = true; interaction.user.transform.position = pushPosition.transform.position; interaction.user.transform.rotation = pushPosition.transform.rotation; transform.SetParent (interaction.user.transform); interaction.start = false; } } } } Die Settings sind die Einstellungen des Spielers und "interaction" ist einfach ein Script, das bei Interaktion auf "inUse" gestellt wird. Damit man den Beginn der Interaktion abfragen kann, gibt es die Variable "start", die ich bisher auch für die Anfangseinstellung nutze. Ich hoffe ihr versteht wie ich das meine ^^ MfG, AniProGuy
  9. Nun also ich habe Refresh probiert und auch Reimport (all). Bei all denen hat sich aber nichts geändert. Es muss irgendein Bug oder so gewesen sein, denn jetzt funktioniert es ja.
  10. So, ich habe jetzt nochmal das Prefab erstellt und wenn ich nun in der fbx neue Extra Transforms hinzufügen, dann werden die auch ins Prefab aktualisiert. Ich weiß nicht, woran es lag aber scheinbar war es ein Bug.
  11. Ok, also ich habe die .fbx mal von der Szene ins Prefab gezogen aber da löscht es ja alles raus und das ist im Prinzip dasselbe wie neu machen ^^
  12. Also soll ich die neue Fbx in den Ornder ziehen und auf ersetzen klicken? Tut mir leid aber ich verstehen das irgendwie nicht so ganz ^^'
  13. Also die Verbindung ist noch da aber wir ist das gemeint mit dem reinziehen?
  14. Danke für die Antwort! Eigentlich mache ich das ja. Also ich habe die .fbx und dort füge ich jetzt z.B. Extra Transforms hinzu. Dann sind die dort zwar vorhanden aber bei dem Prefab nicht (weder bei dem im Ordner noch bei dem in der Szene). Und das ist ja das Problem, falls das aus meiner Frage nicht hervorgegangen ist. Wenn das Prefab aber auf die .fbx zugreift, dann müsste das doch übernommen werden, oder?
  15. Also eigentlich mache ich ja genau das. Also ich bearbeite die Datein in blender und überspeichere dann die .fbx in den Unity ordner. Nur leider wir eben wie gesagt, das von dem Prefab nicht übernommen. Wenn ich in Unity auf die fbx schaue, dann ist es dort aber übernommen worden.