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