Question

Je viens juste de commencer à apprendre le cadre de développement de jeux Unity3D. Je suis en train de faire un cylindre « point » un autre objet quand une touche est enfoncée.

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

Je sais que je dois utiliser la position de la cible et le cylindre pour modifier la rotation du cylindre, mais je ne peux pas comprendre comment, je ne pense pas que je comprends ce que ces Quaternions sont encore.

Je vous en serais reconnaissant toute aide! Merci,
Manuel

Était-ce utile?

La solution

Tout d'abord, votre bouteille a besoin d'une notion de « avant » ou sa « direction de pointage » (mes mots) dans l'espace local du cylindre. Pour cela, vous pouvez supposer (ou voir visuellement) soit + X, + Y, + Z, -X, -Y ou -Z; ou vous pouvez spécifier votre propre pointage de vecteur arbitraire dans une autre direction.

Deuxièmement, vous avez besoin d'un vecteur qui pointe du centre de votre bouteille au centre de l'autre objet (vous en avez parlé déjà).

Maintenant, vous pouvez utiliser Quaternion.FromToRotation(...) de l'unité pour générer un quaternion qui, si elle est appliquée à votre rotation mondiale du cylindre, tournera votre direction pointant dans la direction de votre autre objet. Fait.

Notez que si votre cylindre est plus de deux transformations profondes, vous devrez peut-être modifier les mécanismes de cette approche légèrement pour tenir compte éventuellement pour les transformations des parents.

Autres conseils

Y at-il une raison pour laquelle vous utilisez Quaternions je voudrais utiliser des angles Quaternions.Eular qui représentent Quaternions comme vecteur 3 qui est la façon dont nous comprenons souvent des angles.

ce que Ducky dit est correct si vous rencontrez des problèmes avec Quaternions je recommanderai pas les utiliser jusqu'à ce que vous avez une meilleure compréhension de ces ensembles d'angle.

it helps

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top