2
我在Unity中隱藏UI面板時遇到問題。代碼在客戶端連接到服務器時調用。Unity3D SetActive凍結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。
是您gamobject活躍?從文檔:請注意,消息不會被髮送到非活動對象(即已在編輯器中停用或使用SetActive功能的消息)。 –
是的。我的gameobject是活動的。 sendmessage可以工作,但UI不會隱藏。顯然它凍結了,所有的按鈕變成不可點擊的,可能會導致gameUI變得活躍,但是遊戲UI有一個背景圖像,它應該涵蓋了整個UI。 – Ophitect
您確定您實際連接到服務器嗎?如果連接的函數永遠不會被調用它不能調用HideAllActiveUI –