La difficulté avec WaitForSeconds() dans l'Unité
Je suis en train d'invoquer une prise de vue de l'animation dans la fonction de mise à Jour et puis attendre pendant 0,5 secondes avant de frayer un tir laser. Le code ci-dessous ne fonctionne pas pour moi. Que puis-je faire pour obtenir le résultat souhaité?
void Update()
{
if (Input.GetMouseButtonDown (0))
{
animator.SetTrigger("Shoot"); //Start animation
WaitAndShoot();
}
}
IEnumerator WaitAndShoot()
{
yield return new WaitForSeconds(0.5f);
Instantiate (shot, shotSpawn.transform.position,shotSpawn.transform.rotation);
}
- J'ai trouvé ce unitygeek.com/coroutines-in-unity3d très utile pour comprendre les Coroutines dans Unity3d
Vous devez vous connecter pour publier un commentaire.
Vous avez oublier de l'appeler comme une coroutine à l'aide de
StartCoroutine()
.Il devrait être:
Garder à l'esprit que cela permet de déclencher plusieurs coups de feu avant que le premier coup a été donné naissance à. Si vous voulez éviter cela, garder la trace d'un coup de feu ou pas avec un booléen, et de vérifier que, en plus de votre GetMouseButtonDown.