Wie kann ich den Namen der Coroutine dynamisch machen? Ich benutze diese Ziele zu machen sterben automatisch nach wenigen Sekunden:Name der dynamischen Coroutine
void InitiateKill(int i)
{
//i is the number of the target
StartCoroutine(TargetDie(i, timeAlive/1000));
//some other stuff
}
Wenn das Ziel, bevor dieser Timer Enden getötet, ich offensichtlich einen Fehler, weil es nicht noch einmal das Ziel töten.
Deshalb möchte ich die Coroutine dieses spezifischen Ziels stoppen, aber ich weiß nicht wie.
Ich habe versucht:
Coroutine b[i] = StartCoroutine(TargetDie(i, timeAlive/1000));
Aber das gibt einen Syntaxfehler. b[i]
kann nicht für Coroutines verwendet werden.
Wie wird das richtig gemacht?
Update:
Dies ist (der relevante Teil) meine TargetDie Funktion:
IEnumerator TargetDie(int i, float delayTime)
{
yield return new WaitForSeconds(delayTime);
Destroy(targets[i]);
}
Wenn der Spieler das Ziel tötet, das tue ich:
void Damage(int i)
{
// at this time, the first Coroutine, started in InitiateKill, should stop, because otherwise it tries to destroy the target twice
StartCoroutine(TargetDie(i, 0));
}
Bewahren Sie die Nummer des Ziel irgendwo? Und wenn Sie möchten, dass es automatisch stoppt, können Sie dies in der TargetDie-Funktion selbst tun. Es lohnt sich zu erklären, was diese Funktion macht und wann sie stirbt/aufhören soll zu laufen. – Programmer
Ja, in ihrem Namen: target0, target1, ... Wie ist das relevant für den Coroutineteil? – binoculars
@Programmer: Ich habe meine Frage – binoculars