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;
}
}
}