Unity3D canvas SetActive 无法在 WebPlayer 上运行
Unity3D canvas SetActive not working on WebPlayer
我在 Unity 中遇到了 WebPlayer 的问题。
我的游戏在我的代码开头使用 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);
}
请注意,除此之外,您不能在 Unity 中base.Start()
。
"Start" 并不是那样工作的 - 它是一个神奇的函数,它几乎就像是一种预处理器语法糖果。
你可以googlemuch about the issue。
所以首先,不要那样做或尝试那样做。
如果您使用的是派生 类,请不要尝试在“开始”中做任何事情。拥有自己的功能 - 例如 "Begin" 或 "Setup" - 并完全使用它。只需从 Unity 的魔法中调用它 Start
,
我在 Unity 中遇到了 WebPlayer 的问题。
我的游戏在我的代码开头使用 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);
}
请注意,除此之外,您不能在 Unity 中base.Start()
。
"Start" 并不是那样工作的 - 它是一个神奇的函数,它几乎就像是一种预处理器语法糖果。
你可以googlemuch about the issue。
所以首先,不要那样做或尝试那样做。
如果您使用的是派生 类,请不要尝试在“开始”中做任何事情。拥有自己的功能 - 例如 "Begin" 或 "Setup" - 并完全使用它。只需从 Unity 的魔法中调用它 Start
,