Не работает SetActive(), окно не появляется

Реализовывал несложную паузу в игре. Есть окно и кнопка, при нажатии на кнопку паузы должно появляться окно паузы

Скрипт приложу ниже, он находится на пустом объекте, который в свою очередь прикреплен к кнопке паузы.

Часть кода работает точно - пауза срабатывает, только вот окно не появляется. Ошибок консоль не выдает, просто не поваляется окно. Оно реализовано в Canvas картинкой

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class Pause : MonoBehaviour
{
    public GameObject PauseScreen;

    public GameObject player;

    public void PauseOn()
    {
        Time.timeScale = 0f;
        gameObject.GetComponent<PlayerMove>().enabled = false;
        PauseScreen.SetActive(true);
    }

    public void PauseOff()
    {
        Time.timeScale = 1f;
        gameObject.GetComponent<PlayerMove>().enabled = true;
        PauseScreen.SetActive(false);
    }

}

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

Автор решения: Gamer

Почему бы вам просто не включать и выключать объект через Inspector, а вообще советую подучить основы Unityтут должно быть описание

→ Ссылка
Автор решения: Nikolay Stuff

Если PausScreen это объект с Canvas, то меню и не появится. Лучше всего создать пустой объект, добавить к нему компонент Canvas и уже внутри это объекта плодить нужные сущности, по типу Image, который отвечает за бэкграунд Меню и в неё уже дочерними сущностями добавлять кнопки и прочее что нужно.

К тому же вы у объекта Pause просите компонент PlayerMove.

Если вы хотите получить компонент PlayerMove у объекта player:

PlayerMove playerMove = player.GetComponent<PlayerMove>

Если вам нужен именно компонент PlayerMove, то лучше сразу опракинуть ссылку на него:

public class Pause : MonoBehaviour
{
    public GameObject PauseScreen;

    public PlayerMove player;

    public void PauseOn()
    {
        Time.timeScale = 0f;
        player.enabled = false;
        PauseScreen.SetActive(true);
    }

    public void PauseOff()
    {
        Time.timeScale = 1f;
        player.enabled = true;
        PauseScreen.SetActive(false);
    }
}
→ Ссылка