Je débute sur unity et je ne sais donc pas comment nommer ce dont je parle en titre.
J'aimerai que mon code attende que mon time.delatime finisse de faire avancer mon personnage comment pourrais-je faire?
Code : Tout sélectionner
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class IA : MonoBehaviour
{
public bool Touche = false;
public bool waitt = false;
void start()
{
}
void Update()
{
StartCoroutine(iaDeplacement());
IEnumerator iaDeplacement()
{
Debug.DrawRay(transform.position, transform.forward*(5), Color.red);
RaycastHit hit;
Touche=false;
//Detecte si il touche
if(Physics.Raycast(transform.position, transform.forward, out hit, 5))
{
//fait Rotate le perso
transform.Rotate(Vector3.up*100);
Touche=true;
Debug.Log("Touche");
waitt=true;
yield return new WaitForSeconds(1);
waitt=false;
}
//Else de if (si touche et waitt sont sur false)
else if ((Touche==false&&waitt==false))
{
//avance si touche et waitt sont sur false
while(Touche==false&&waitt==false)
{
//Fait avancer le personnage
transform.Translate(Vector3.forward*5*Time.deltaTime);
yield return new WaitForSeconds(5);
yield return null;
}
}
}
}
}