Wie in Unity Variable ändern wenn ein Objekt berührt wird?

OctoMan  05.02.2021, 10:07

Hast du denn dein Enemy getagged und alle nötigen Collider, Rigidbodys etc auf den Objekten?

1 Antwort

Also ich würde das so machen :

public class HP : MonoBehaviour
{
    private bool touched = false;
    private float touchedTime = 0;

    private int hp = 10;
    private void OnCollisionEnter(Collision other)
    {
        if (other.transform.tag.Equals("Enemy"))
        {
            touched = true;
            touchedTime = Time.time;
        }
    }

    private void Update()
    {
        if (touched)
        {
            if (Time.time - touchedTime > 2)
            {
                hp--;
                touched = false;
            }
        }
    }
}

Hab den Code jetzt nicht getestet, aber sollte eigentlich so funktionieren.

Und sorry für die späte Antwort

Und ja ich weiß es ist nicht die Performanteste art immer abzufragen ob es getoched wurde. Aber dafür die einfachste