Unity: Wie kann ich einen Feuerschaden für die Spielfigur realisieren?
Ich experimentiere gerade mit Unity herum und wollte einen Feuerschaden machen. Das heißt, wenn der Spieler im Feuer steht, soll dieser alle 0.5 Sekunden Schaden bekommen. Wenn er raus geht, soll dieser noch zehn Sekunden lang alle zwei Sekunden Schaden nehmen.
Das hier war mein Code (allerdings funktioniert dieser nicht):
[SerializeField]
private PlayerHealth plhealth;
private void OnTriggerStay2D(Collider2D collision)
{
StartCoroutine(InFire());
}
private void OnTriggerExit2D(Collider2D collision)
{
StartCoroutine(InFireOff());
}
IEnumerator InFire()
{
yield return new WaitForSeconds(0.5f);
Debug.Log("Omg Fire");
plhealth.health -= 3f;
}
IEnumerator InFireOff()
{
yield return new WaitForSeconds(2f);
plhealth.health -= 2.5f;
Debug.Log("aaaaaaaaaaaaaaaa");
}
1 Antwort
Dein Code enthält viele Fehler.
Z.B. zu viele Korouten im OnTriggerStay, du hast nur einmaligen Schaden beim verlassen des Feuers und du brauchst noch eine Prüfung ob der Spieler im Feuer steht oder nicht.