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 в производных.)