赞
踩
今天写Unity程序时出现以下问题,主要代码如下
void ShowMessageBox() { GameObject messageBox = (GameObject)Resources.Load("Prefabs/MessageBox"); messageBox.GetComponentInChildren<Text>().text = "The model already exists.\nCover it?"; Instantiate(messageBoxResource); messageBox.GetComponent<MyMessageBox>().OkBtn.onClick.AddListener(OnOkBtnClicked); messageBox.GetComponent<MyMessageBox>().CancleBtn.onClick.AddListener(OnCancleBtnClicked); } void OnOkBtnClicked() { Debug.Log("Click OK"); DestroyImmediate(messageBox); } void OnCloseBtnClicked() { DestroyImmediate(messageBox); } void OnCancleBtnClicked() { Debug.Log("Click Cancle"); DestroyImmediate(messageBox); }
开始程序死活都无法响应MessageBox的OK和Cancle按钮的点击事件。鼠标滑过Instantiate时IDE提示返回GameObject,突然提醒了我Instantiate返回的才是在场景中的GameObject,Resource.Load只是将资源加载到内存当中。因此将代码改为如下:
void
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。