1

我在 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);
}
4

1 回答 1

3

请注意,除此之外,您不能进入base.Start()Unity。

“开始”只是不能那样工作 - 它是一个神奇的功能,它几乎就像一个预处理器语法糖果。

你可以在谷歌上搜索很多关于这个问题的信息

因此,首先,不要这样做或尝试这样做。

如果您使用派生类,请不要尝试在 Start 中执行任何操作。拥有自己的功能——比如“开始”或“设置”——并完全使用它。只需从 Unity 的魔法中调用它Start

于 2016-02-11T13:25:58.050 回答