Jump to content
Unity Insider Forum

Problem mit der Ausrichtung eines Prefabs


grinseengel

Recommended Posts

Hallo Community,

ich habe ein Problem bei dem ich keine Lösung finde. Evtl. mache ich ja auch einen Denkfehler.

Ich habe in meinem aktuellen Projekt Gegner die an bestimmten Punkten gespawn werden. Jetzt wird der Gegner aber immer verdreht gespawnt. Bei den meisten Modellen drehe ich den Root-Body entsprechend damit es passt. Ich habe jetzt ein paar Modelle die ich verdrehen kann, wie ich will, sie werden trotzdem immer gleich verdreht gespawnt. Ich hoffe ich habe das Problem verständlich beschrieben. Hier ein Bild was euch das zeigt. Habt ihr eine Ideen warum es bei einigen Modellen funktioniert und bei anderen nicht?

 

test.JPG

Link zu diesem Kommentar
Auf anderen Seiten teilen

Kannst auch im Instantiate-Befehl direkt eine Rotation übergeben. Ändert nicht viel. Aber vielleicht hilft die Info, wie der Ablauf bei Instantiate ist:

  • Code vor Instantiate
  • Instantiate
    • Objekt wird erstellt, ggf. mit übergebener Position und Rotation
    • Awake wird auf der Instanz aufgerufen
    • OnEnable wird auf der Instanz aufgerufen
  • Code nach Instantiate
  • (Ende des Updates) Start wird auf der Instanz aufgerufen

Wenn du etwas theoretisch ausrichtest, aber die Ausrichtung immer gleich ist, dann ist vermutlich Code im Spiel, der irgendwo in diesem Ablauf Dinge tut. Entweder, deine beim Spawnen gesetzte Rotation wird überschrieben (z.B. in Start deines Objekts) oder ein Kind-Objekt richtet sich mit transform.rotation statt mit transform.localRotation aus.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Vielen Dank euch beiden für die schnelle Rückmeldung.

Ich bin aber der Meinung das es am Script nicht liegen kann. Ich habe zwei Monstermodelle, den Guhl, der bereits in meinem Demo_level zu sehen ist und ein Troll. beide sind im Prinzip Modelle die komplett gleich aufgebaut sind. Diese drehe ich einfach um x-Grad und dann sind sie richtig ausgerichtet. Dann habe ich zwei Modelle die im Prinzip auch gleich erstellt sind (root-boby....). Wenn ich diese analog der beiden anderen drehe, passiert nichts. Die Ausrichtung bleibt immer die gleiche. Das verstehe ich nicht. Gibt es bei Modellen etwas wie einen Origin (eine vom Modell vorgebene Ausrichtung)? Man muss doch ein Modell drehen können, evtl. mit einem Objekteditor?

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 36 Minuten schrieb grinseengel:

Ich bin aber der Meinung das es am Script nicht liegen kann.

Es liegt aber immer an irgendeinem Code :)

vor 36 Minuten schrieb grinseengel:

Wenn ich diese analog der beiden anderen drehe, passiert nichts. Die Ausrichtung bleibt immer die gleiche.

Das bedeutet eindeutig, dass da Code am rumpfuschen ist. Irgendwo setzt ein Script in Update immer wieder die Rotation neu und überschreibt damit sofort wieder alles, was du im Editor per Hand drehst.

Es muss aber nicht unbedingt dein Code sein. Benutzt du da z.B. NavMeshAgents?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ok, du wirst bestimmt deine Erfahrungen damit haben. Ich dagegen habe jetzt echt ein logisches Problem, was ich mir mit dem Script aber nicht erklären kann.

Hier mein Guhl:

guhl.thumb.JPG.9bf36c5a74bf3a446fba66563f6a5c79.JPG

Lässt sich verdrehen und somit entsprechend ausrichten.

Hier mein Geist:

geist.thumb.JPG.b96cf7081e3709bbf34450f39b046ee2.JPG

Lässt sich verdrehen wie ich will und hat keinerlei Auswirkung.

Verstehe ich nicht. Sind beide in gleicher Art und Weise eingebunden und jeweils das gleiche Script.

Zitat

Es muss aber nicht unbedingt dein Code sein. Benutzt du da z.B. NavMeshAgents?

Ja mache ich.

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 2 Stunden schrieb grinseengel:

Ja mache ich.

Joa, die können die Ausrichtung evtl. überschreiben. Aber wenn ich das richtig sehe, redest du hier vom Prefab Edit Mode, richtig? Dann läuft das Spiel ja gar nicht. Was hast du denn alles für Scripts auf dem Geist-Prefab? Und welches Objekt drehst du? Siehst du eine Änderung in der Transform-Komponente im Inspektor, wenn du drehst?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ok, ich habe es jetzt hinbekommen. Die Lösung ist mir aber total schleierhaft. Ich habe jetzt zusätzlich zum Geist-Prefab einen Block ins Modell gesetzt. Diesen unsichtbar gemacht. Dem Block habe ich das Geistprefab zugeordnet und dann den Block gedreht. Und siehe da, es funktioniert.

geist.JPG.b5363000031656aa0a97d30a025bd28b.JPG

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.

×
×
  • Neu erstellen...