[Résolu] Rotation, faire face a un objet

Questions à propos du scripting. Hors Shader, GUI, Audio et Mobile.
Avatar de l’utilisateur
DJ-OMZ
Messages : 129
Inscription : 11 Jan 2017 13:15

[Résolu] Rotation, faire face a un objet

Message par DJ-OMZ » 11 Déc 2018 16:10

Bonjour,

J'ai vraiment toujours eu des difficultés avec Unity et les rotations...
J'ai un cube qui va se déplacer depuis sa position vers celle d'un gameObject. J'aimerais qu'il face face a cet objet.
Voila mon script :

Code : Tout sélectionner

public class Target : MonoBehaviour {

    public Transform[] target;
    public float[] speed;

    private int current;
	void Update () {
		if(transform.position != target[current].position)
        {
            Vector3 targetRotation = new Vector3(target[current].position.x, target[current].position.y, target[current].position.z);
            Vector3 vectorRotation = Vector3.RotateTowards(transform.forward, targetRotation, 0.4f, 0);
            transform.rotation = Quaternion.LookRotation(vectorRotation);
            if (Quaternion.Angle(transform.rotation, Quaternion.LookRotation(targetRotation)) < 10)
            {
                transform.rotation = Quaternion.LookRotation(targetRotation);
                Vector3 pos = Vector3.MoveTowards(transform.position, target[current].position, speed[current] * Time.deltaTime);
                GetComponent<Rigidbody>().MovePosition(pos);
            }
        }
        else
        {
            current = (current + 1) % target.Length;
        }
	}
}
Le résultat c'est qu'il tourne mais juste un peu... Je ne comprends pas comment faire...
Dernière édition par DJ-OMZ le 11 Déc 2018 16:22, édité 1 fois.

Avatar de l’utilisateur
Sebela
Messages : 141
Inscription : 25 Juin 2014 21:39

Re: Rotation, faire face a un objet

Message par Sebela » 11 Déc 2018 16:20

Salut !

Unity a ce qu'il te faut :)
C'est la fonction transform.LookAt qui permet au vecteur forward de ton transform de pointer vers un target transform.

Essaye ça :

Code : Tout sélectionner

transform.LookAt(target.transform);

Avatar de l’utilisateur
DJ-OMZ
Messages : 129
Inscription : 11 Jan 2017 13:15

Re: Rotation, faire face a un objet

Message par DJ-OMZ » 11 Déc 2018 16:21

Je viens a l'instant de trouver j'allais supprimer mon message :lol:

Merci beaucoup, ah les rotations et moi hein...

Répondre

Revenir vers « Scripting »