Jump to content
Unity Insider Forum

Quaternion.identity Befehl


Tintenklecks

Recommended Posts

Ich hab da mal wieder eine super erklährfrage. Ich verstehe die erklährung von Unity zu dem Oben stehen den Befehl nicht richtig und bin innerhalb eines Tutorials darüber gestolpert. Vielleicht kann mir jemand helfen? Ich möchte gerne verstehen, was ich da eigentlich in meine Scripte schreibe.

Danke im Vorraus :D

LG

Link zu diesem Kommentar
Auf anderen Seiten teilen

Damit ist die Drehung aller Achsen gemeint. Mathematisch repräsentiert Quaternion.identity ja die Einheitsmatrix, da man (insbesondere) die Rotation mit Matritzen berechnet. Das ist sowas wie die Rechnung 735 * 1 = 735. Die 1 Repräsentiert sozusagen die Einheitsmatrix, da egal was man mit der 1 multipliziert, es kommt immer wieder die gleiche Zahl raus. Quaternion.identity ist sowas wie die 1 beim malnehmen nur mit Rotationen und nicht mit einzelnen Zahlen. Bei Vektoren wäre das äquivalent mit Vector3.one 

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 9 Stunden schrieb Helishcoffe:

Bei Vektoren wäre das äquivalent mit Vector3.one 

Das kann man ja so nicht sagen. Wenn du ein Objekt um (1,1,1) verschiebst ist es woanders. Obwohl man, wenn man um (1,1,1) skaliert, dieselbe Größe wie vorher hat. Da es keinen "Einheitsvektor" ohne Angabe der Verwendung gibt, hab ich das Beispiel mal weggelassen :)

vor 14 Stunden schrieb Tintenklecks:

Ist damit dann die Drehung um die Z Achse gemeint?

Wie @Helishcoffe schon sagte, es geht um alle Achsen. Mal anders ausgedrückt: Quaternion.identity ist, wenn du in der Transform-Komponente des Objekts bei der Rotation 0, 0 und 0 stehen hast.

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 2 Stunden schrieb Sascha:

Das kann man ja so nicht sagen. Wenn du ein Objekt um (1,1,1) verschiebst ist es woanders. Obwohl man, wenn man um (1,1,1) skaliert, dieselbe Größe wie vorher hat.

Ja gut das stimmt hatte jetzt nur Multiplikation gerechnet :D Wenn man so will wäre es bei der Addition dann Vector3.zero 

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Noch als Ergänzung:
Quaternion.identity steht für den Vektor (x,y,z,w) =  (0,0,0,1)

X    Der X-Wert der Vektorkomponente der Quaternion.
Y    Der Y-Wert der Vektorkomponente der Quaternion.
Z    Der Z-Wert der Vektorkomponente der Quaternion.
W    Die Rotationskomponente der Quaternion.

Und da dieser Vektor eben immer wieder einmal benötigt wird (um beispielsweise "keine Rotation vorhanden" auszudrücken), wurde dieser eben der statischen Variable "identity" der Klasse Quaternion (bzw. Struct) zugewiesen.

Mit

this.transform.rotation = Quaternion.identity;

drückst du nun also aus, mein Transform soll nicht rotiert sein. Häufig verwendet man es, nachdem man GameObjekte instanziiert hat oder wenn man Rotationen zurücksetzen möchte:
https://docs.unity3d.com/ScriptReference/Object.Instantiate.html
https://docs.unity3d.com/ScriptReference/Transform-rotation.html

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

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

×
×
  • Neu erstellen...