Unity - C# - 将 GameObject 附加到 public Button CommunicationButton;
Unity - C# - attach GameObject to public Button CommunicationButton;
我无法解决这个问题,希望有人知道该怎么做。
我有什么
canvas 上的一个按钮和一个文本字段,见图:
我有一个名为 HumanInstructions 的脚本,其初始化如下:
public Text CommunicationMessage;
public Button CommunicationButton;
现在我可以在检查器中指定相应的游戏对象,方法是在下拉菜单中选择 button/textfield。
我想要的,是通过脚本选择游戏对象。文本字段称为 CrazyMsg,按钮称为 CommunicationButton。所以我想要这样的东西:
public override void OnAwake ()
{
CommunicationMessage = GameObject.find("CrazyMsg");
CommunicationButton = GameObject.find("CommunicationButton");
}
没用。求助!
是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);
注册 Button
我无法解决这个问题,希望有人知道该怎么做。
我有什么
canvas 上的一个按钮和一个文本字段,见图:
我有一个名为 HumanInstructions 的脚本,其初始化如下:
public Text CommunicationMessage;
public Button CommunicationButton;
现在我可以在检查器中指定相应的游戏对象,方法是在下拉菜单中选择 button/textfield。
我想要的,是通过脚本选择游戏对象。文本字段称为 CrazyMsg,按钮称为 CommunicationButton。所以我想要这样的东西:
public override void OnAwake ()
{
CommunicationMessage = GameObject.find("CrazyMsg");
CommunicationButton = GameObject.find("CommunicationButton");
}
没用。求助!
是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);