Frage

Ich fange gerade an, den Unity3D Game Development Framework zu lernen. Ich versuche, einen Zylinder "Punkt" ein anderes Objekt zu machen, wenn eine Taste gedrückt wird.

public GameObject target;
void Update () {
    if (Input.GetKeyDown(KeyCode.A)) {
        ???
    }
}

Ich weiß, dass ich die Position des Ziels und der Zylinder verwenden muss, um die Rotation des Zylinders zu ändern, aber ich kann nicht herausfinden, wie ich nicht verstehe, was diese Quaternionen noch sind.

Ich würde mich wirklich an jede Hilfe schätzen! Vielen Dank,
Manuel

War es hilfreich?

Lösung

Erstens braucht Ihr Zylinder eine Vorstellung von "Vorwärts" oder "Zeigende Richtung" (meine Worte) im lokalen Raum des Zylinders. Dazu können Sie entweder +x, +y, +z, -x, -y oder -z annehmen (oder visuell sehen); Oder Sie können Ihren eigenen willkürlichen Vektor angeben, der in eine andere Richtung zeigt.

Zweitens brauchen Sie einen Vektor, der vom Zentrum Ihres Zylinders auf das Zentrum des anderen Objekts verweist (Sie haben dies bereits erwähnt).

Jetzt können Sie Unitys verwenden Quaternion.FromToRotation(...) Um ein Quaternion zu erzeugen, das sich, wenn sie auf die Weltdrehung Ihres Zylinders angewendet wird, Ihre Zeigenrichtung umdrehen, um in Richtung Ihres anderen Objekts zu sein. Fertig.

Beachten Sie, dass Sie möglicherweise die Mechanik dieses Ansatzes geringfügig ändern müssen, wenn Ihr Zylinder mehr als ein paar verwandelt ist, um möglicherweise die Transformationen der Eltern zu berücksichtigen.

Andere Tipps

Gibt es einen Grund, warum Sie Quaternionen verwenden, die ich in Quaternionswinkeln verwenden würde, die Quaternionen als Vektor 3 darstellen.

Was Ducky sagte, ist korrekt, wenn Sie jedoch Probleme mit Quaternionen haben, würde ich sie nicht verwenden, bis Sie diese Winkelsätze besser verstehen.

ich hoffe es hilft

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top