Задать вопрос
PNEctarine
@PNEctarine
Unity developer

Почему не всегда срабатывает SetActive?

Когда объект касается коллайдера с тегом, то игра должна останавливаться, спрятать кнопку паузы и вывести канвас с кноппками. Но когда набираешь 21 очко и проигрываешь, то всё выполняется, кроме вывода канваса. В чём может быть проблема?
using UnityEngine;

public class WatchAttack : MonoBehaviour
{
    private float speed = 1;

    private Vector2 watchDirection;
    public GameObject watch;
    public GameObject pauseButton;
    public GameObject destroyPoint;
    public GameObject gameOverWindow;
    public GameObject sound;

    public GameObject highScoreWindow;
    public static int highScore = 0;

    public GameObject watchTarget;

    public Vector2 spawnerDirection;
    public GameObject spawnPoint;

    void Start()
    {
        gameOverWindow.SetActive(false);
        watchDirection.y = watchTarget.transform.position.y;
        watch.transform.position = watchDirection;
    }


    private void Update()
    {
        speed += 0.07f * Time.deltaTime;
        transform.Translate(speed * watch.transform.position * Time.deltaTime, Space.World);
    }

    private void OnTriggerEnter2D(Collider2D collision)
    {
        gameOverWindow.SetActive(true);
        pauseButton.SetActive(false);
        Time.timeScale = 0f;

        sound.GetComponent<AudioSource>().Pause();

        if (highScore < WatchKiller.score)
        {
            highScore = WatchKiller.score;
            PlayerPrefs.SetInt("High score", highScore);
        }

        else if (highScore >= WatchKiller.score)
        {
            highScore = PlayerPrefs.GetInt("High score");
        }
    }
}
  • Вопрос задан
  • 87 просмотров
Подписаться 1 Средний Комментировать
Пригласить эксперта
Ответы на вопрос 1
freeExec
@freeExec
Участник OpenStreetMap
Повесьте на свой канвас скрипт, где вы сможете поставить брейкпоинт в OnDisable() и узнаете кто его выключает.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы