我无法解决这个问题,希望有人知道怎么做。
我有什么
画布上的按钮和文本字段,请参见图像:
我有一个名为HumanInstructions的脚本,它初始化如下:
public Text CommunicationMessage;
public Button CommunicationButton;
现在我可以通过在下拉菜单中选择按钮/文本字段来在检查器中分配相应的GameObject。
我想要的,是通过脚本选择GameObject。文本字段名为CrazyMsg,按钮名为CommunicationButton。所以我想要这样的东西:
public override void OnAwake ()
{
CommunicationMessage = GameObject.find("CrazyMsg");
CommunicationButton = GameObject.find("CommunicationButton");
}
它不起作用。救命啊!
答案 0 :(得分:0)
GameObject.Find
不是GameObject.find
。您还需要在找到GameObject后获取Component。
public Text CommunicationMessage;
public Button CommunicationButton;
void Start()
{
CommunicationMessage = GameObject.Find("CrazyMsg").GetComponent<Text>();
CommunicationButton = GameObject.Find("CommunicationButton").GetComponent<Button>();
//Register Button Click
CommunicationButton.onClick.AddListener(() => buttonClickCallBack());
}
//Will be called when CommunicationButton Button is clicked!
void buttonClickCallBack()
{
CommunicationMessage.text = ....
}
您还可以使用CommunicationButton.onClick.AddListener(delegate { buttonClickCallBack(); });
或CommunicationButton.onClick.AddListener(buttonClickCallBack);