Answer1Button
Answer2Button
Answer3Button
Answer4Button
У каждой кнопки есть вложенный компонент - текст. Как у любой обычной кнопки в Unity.
Нужно вывести определенный текст на каждой кнопке.
Вот скрипт, который привязан к каждой кнопке.
Синтаксис:
Используется csharp
public class AnswerButton : MonoBehaviour
{
public int buttonNumber; // В это поле вводим номер кнопки. Это работает, в дебаге вижу цифру, которую ввел.
GameObject answerButton;
GameObject answerText;
Component _text; // Текст, который надо вывести. Работает - в дебаге вижу текст.
int answerId;
string _answer;
public int AnswerId{ get{return answerId;} set{answerId=value;} }
public string _Answer{ get{return _answer;} set{_answer=value;} }
void Start()
{
Не работает - не может найти ссылку на объект.
/*
if (buttonNumber==1) answerButton = GameObject.Find("/Answer1Button/Text");
if (buttonNumber==2) answerButton = GameObject.Find("/Answer2Button/Text");
_text = answerButton.GetComponent<Text>();
_text.text=_answer; // Пишет - нет такого свойства.
*/
// Работает, но выводит текст только на первой кнопке.
// И это понятно т.к. всегда будет найден один и тот же компонент Text (мы ведь не указали, где искать этот вложенный компонент Answer1Button/Text вот и выводит первый попавшийся)
Debug.Log("Start "+buttonNumber);
var gameObject = GameObject.Find("Text");
var component = gameObject.GetComponent<Text>();
component.text=_answer;
Debug.Log("Ответ="+_answer);
}
{
public int buttonNumber; // В это поле вводим номер кнопки. Это работает, в дебаге вижу цифру, которую ввел.
GameObject answerButton;
GameObject answerText;
Component _text; // Текст, который надо вывести. Работает - в дебаге вижу текст.
int answerId;
string _answer;
public int AnswerId{ get{return answerId;} set{answerId=value;} }
public string _Answer{ get{return _answer;} set{_answer=value;} }
void Start()
{
Не работает - не может найти ссылку на объект.
/*
if (buttonNumber==1) answerButton = GameObject.Find("/Answer1Button/Text");
if (buttonNumber==2) answerButton = GameObject.Find("/Answer2Button/Text");
_text = answerButton.GetComponent<Text>();
_text.text=_answer; // Пишет - нет такого свойства.
*/
// Работает, но выводит текст только на первой кнопке.
// И это понятно т.к. всегда будет найден один и тот же компонент Text (мы ведь не указали, где искать этот вложенный компонент Answer1Button/Text вот и выводит первый попавшийся)
Debug.Log("Start "+buttonNumber);
var gameObject = GameObject.Find("Text");
var component = gameObject.GetComponent<Text>();
component.text=_answer;
Debug.Log("Ответ="+_answer);
}
Как вывести текст на кнопке? Как "достучаться" до вложенного объекта Text?
По идее, наверно даже не надо обращаться через /Answer1Button/Text т.к. Text, на который мы хотим получить ссылку - это вложенный компонент Button.
Просто "сказать" скрипту - найди у объекта, к которому ты привязан, вложенный компонент Text. И присвой есу текст.
Как то так...