Probleme mit WaitForSeconds() in Unity
Ich versuche zu berufen, ein shooting-animation in der Update-Funktion und warten Sie dann für 0,5 Sekunden vor dem laichen ein laser-Schuss. Der folgende code ist nicht für mich arbeiten. Was kann ich tun, um das gewünschte Ergebnis erzielen?
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);
}
- Ich fand das unitygeek.com/coroutines-in-unity3d sehr hilfreich, um zu verstehen, Coroutinen in Unity3d
Du musst angemeldet sein, um einen Kommentar abzugeben.
Du hast vergessen zu nennen, es als eine koroutine mit
StartCoroutine()
.Sollte es sein:
Beachten Sie, dass dies noch ermöglicht Sie auslösen mehrerer Schüsse, bevor der erste Schuss wurde gespawnt. Wenn Sie wollen, um das zu verhindern, verfolgen ein Schuss gefeuert wird oder nicht, mit einem Wert, und überprüfen Sie, dass zusätzlich zu Ihrem GetMouseButtonDown.