我在 Unity 中隐藏 UI 面板时遇到问题。当客户端连接到服务器时,将调用该代码。
void OnPlayerConnected(NetworkPlayer player) {
gameObject.SendMessage("HideAllActiveUI", SendMessageOption.NoReceiverRequired);
}
void OnConnectedToServer() {
gameObject.SendMessage("HideAllActiveUI", SendMessageOption.NoReceiverRequired);
}
public void HideAllActiveUI() {
uiPanel.SetActive(false);
gameUI.SetActive(true);
}
我已经初始化了所有必要的变量,但是代码没有隐藏面板。令人惊讶的是,当我在编辑器上运行它时,它成功隐藏了面板,但是当我在播放器上运行它时,UI 面板仍然存在,并且即使 UI 面板没有消失,游戏 UI 也会出现。
最佳答案
尝试在面板的 gameObject
属性上调用 SetActive
,而不是直接在面板上调用:
uiPanel.gameObject.SetActive(false);
关于c# - Unity3D SetActive 卡住UI面板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30365163/