Je dispose d'un système de WayPoint avec des Gizmos et d'un script me permetant de faire une rotation à un certain angle et à une certaine vitesse, mon but étant de disposer à un certain moment du trajet de mon petit cube, un OnTrigger éxécutant la rotation voulu sur mon cube.
Mon script de rotation fonctionne de base, seulement avec un OnTriggerEnter, la rotation se fais instantanément et avec un OnTriggerStay c'est pareil sauf si le cube est placé directement dans le collider au début du jeux où là, la rotation se fais.
Pour être clair je veux juste une rotation d'un certain degré à une certaine vitesse à plusieurs endroit de mon parcours, vous pouvez m'aidez pour pas que la rotation soit instantanée alors que sans collider cette rotation est bien en fonction d'une vitesse ?
La rotation :
Code : Tout sélectionner
void OnTriggerStay(Collider other)
{
if (other.gameObject.tag == "Cube")
{
Vector3 destination = new Vector3(0, 60, 0);
ObjetToMove.transform.eulerAngles = Vector3.Lerp(transform.rotation.eulerAngles, destination, Time.time*1);
}
Code : Tout sélectionner
void Start()
{
player = GameObject.FindGameObjectWithTag("Player");
WayPoint = new GameObject[transform.childCount];
for (int i = 0; i < transform.childCount; i++)
{
WayPoint[i] = transform.GetChild(i).gameObject;
}
}
void Update()
{
if (i == WayPoint.Length)
{
i = 0;
}
if (ObjetToMove.transform.position != WayPoint[i].transform.position)
{
//ObjetToMove.transform.LookAt(WayPoint[i].transform.position);
ObjetToMove.transform.position = Vector3.MoveTowards(ObjetToMove.transform.position, WayPoint[i].transform.position, speed * Time.deltaTime);
}
else
{
i++;
}
}