2016-11-18 5 views
0

Я не могу решить эту проблему, надеюсь, кто-то знает, как это сделать.Unity - C# - прикрепить GameObject к кнопке ButtonButton;

То, что я

кнопку и текстовое поле на холсте, см Изображение:

enter image description here

У меня есть скрипт, названный HumanInstructions, который инициализирует так:

public Text CommunicationMessage; 
public Button CommunicationButton; 

Прямо сейчас я могу назначить соответствующий объект GameObject в инспекторе, чо osing button/textfield в выпадающем меню.

Что я хочу, выбирает GameObject через скрипт. Текстовое поле называется CrazyMsg, а кнопка называется CommunicationButton. Поэтому я хочу что-то вроде этого:

public override void OnAwake() 
{ 
    CommunicationMessage = GameObject.find("CrazyMsg"); 
    CommunicationButton = GameObject.find("CommunicationButton"); 
} 

Это не работает. Помогите!

ответ

0

Это GameObject.Find не GameObject.find. Вам также нужно получить компонент после обнаружения GameObject.

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 = .... 
} 

Вы также можете regsiter Кнопка с CommunicationButton.onClick.AddListener(delegate { buttonClickCallBack(); }); или CommunicationButton.onClick.AddListener(buttonClickCallBack);

Смежные вопросы