Unity3D Canvas SetActive не работает на WebPlayer

Я столкнулся с проблемой с WebPlayer в Unity.

В моей игре несколько холстов, деактивированных в начале кода с SetActive, В редакторе или настольной версии эти полотна должным образом деактивированы.

Но когда я создаю версию для веб-плеера, это не так. Все отображается. Я обновил все, но без изменений.

Вот мой код:

void Start ()
{
    base.Start();

    MusicLoopsManager.manager.PlayMusic(MusicType.menuMusic);

    mode = GameObject.Find("Mode") as GameObject;
    modeState = ModeState.play;
    pause = GameObject.Find("Pause") as GameObject;
    resume = GameObject.Find("Resume") as GameObject;
    retry = GameObject.Find("Retry") as GameObject;
    exit = GameObject.Find("Exit") as GameObject;

    titleCanvas = GameObject.Find("TitleCanvas") as GameObject;
    levelSelectionCanvas = GameObject.Find("LevelSelectionCanvas") as GameObject;
    hudCanvas = GameObject.Find("HUDCanvas") as GameObject;
    pauseCanvas = GameObject.Find("PauseCanvas") as GameObject;
    victoryCanvas = GameObject.Find("VictoryCanvas") as GameObject;

    levelSelectionCanvas.gameObject.SetActive(false);
    hudCanvas.gameObject.SetActive(false);
    pauseCanvas.gameObject.SetActive(false);
    victoryCanvas.gameObject.SetActive(false);
}

1 ответ

Решение

Обратите внимание, кроме всего прочего,

ты не можешь идти base.Start() в единстве.

"Старт" просто так не работает - это волшебная функция, она почти похожа на синтаксическую конфету препроцессора.

Вы можете много гуглить о проблеме.

Поэтому в первую очередь не делайте этого и не пытайтесь это делать.

Если вы используете производные классы, просто НЕ пытайтесь что-либо делать в Start. У вас есть собственная функция, такая как "Начать" или "Настройка", и используйте ее полностью.

Вполне возможно, что это относится к вашей проблеме - и, как я сказал в комментарии, может включать (в некоторой степени относящийся к этой проблеме) порядок выполнения скрипта. Чтобы было ясно, вам никогда не придется использовать функцию порядка выполнения скрипта, но она может помочь вам найти проблемы, такие как та, о которой я упоминал здесь. Надеюсь, поможет. (Даже если это не поможет, вы должны избавиться от base.Start и все, что вы запрограммировали, включая Start в производных.)

Другие вопросы по тегам