Мое подозрение следующее. Когда Gameobject не включен, его код не запускается. Проверьте это, добавив сообщение Debug.Log ("test").
Если сообщение не появляется, вы можете быть уверены, что эта проверка никогда не проверяется. Чтобы обойти это, просто добавьте скрипт, который привязан к активному игровому объекту. Создайте новый пустой игровой объект на сцене. И добавьте что-то вроде этого:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class GameOverManager : MonoBehaviour
{
public GameObject _player;
public GameObject _endscreen;
void Update()
{
if (_player.activeInHierarchy == false)
{
_endscreen.SetActive(true);
}
else
{
_endscreen.SetActive(false);
}
}
}
Назначьте переменные в Инспекторе, перетащив объект в пустые поля. Никогда не используйте GameObject.Find Методы.
Если вам нужна дополнительная помощь, скажите мне:)