Баг prefab'a в unity(2D)

У меня есть 3 префаба (бомбы которые падают на персонажа. Префабы с триггером). Если этот префаб упадет на игрока, то у игрока отнимутся жизни, но когда бомба падает, жизни не отнимаются, только после выключение игры в самой unity они уже меняется (то есть когда игра выключена жизни изменяются)

Это скрипт триггера

public class TriggerDelete : MonoBehaviour
{

    public GameObject obj;

    void OnTriggerEnter2D(Collider2D col)
    {
        if (col.tag == "Trigger")
        {
            Destroy(gameObject);
        }

        if (col.tag == "Player")
        {
            obj.GetComponent<Health>().health -= 50;



        }

    }

}

Скрипт здоровье

public class Health : MonoBehaviour
{
    public float health;

    public GameObject die;
    public GameObject normal;

    void Update()
    {
        if (health <= 0)
        {

            normal.SetActive(false);
            die.SetActive(true);
        }
    }
}

P.S. Прошу меня простить, т.к. unity я изучаю только 2 недели и мог написать не то что понял!


Ответы (2 шт):

Автор решения: Alemkhan Utepkaliev

Проверьте что Collider вашего Player имеет включенный IsTrigger, необходимый тег, и есть ли компонент Rigidbody2Dна одном из объектов

Проверьте что Вы видите изменения здоровья, проследите за изменениями здоровья возможно Вы можете упустить моменты когда Вы теряете здоровье.

Вариант с багом префаба кажется абсурдным, объект находится на сцене и будет меняться так Вы задаёте.

→ Ссылка
Автор решения: Рудеус Грейрат

Возможно стоит проверить висит ли скрипт TriggerDelete на активном объекте.

Скрипты на неактивных объектах не выполняют свою реализацию.

→ Ссылка