2015-04-23 5 views
1

Как название, я застрял, меняя фон UI.Button в единстве на C#. Можете мне помочь :) Я читал API UI.Button и увидел, что у него есть свойство, называемое image.I пытался скомпоновать изображение и назначил его Button.image, но он не сработал!Как изменить фон UI.Button программно в единстве3D

ответ

1

Предполагая, что ваша кнопка в hirerarchy называется кнопка, это должно назвать его:

GameObject button; 

void Start() { 
button = GameObject.Find("Canvas").transform.Find("button").gameObject; 
} 

Для того, чтобы установить изображение:

button.GetComponent<Image>().mainTexture = /* Texture goes here */; 

И не забывайте! При работе с элементами пользовательского интерфейса, вы должны всегда начать C# скрипт вызова библиотеки пользовательского интерфейса:

using UnityEngine.UI; 
0

Я бы рекомендовал не использовать Найти («кнопка»), потому что это может привести к запускать ошибки времени, потому что GameObject.Find(objectname) реле на имя объекта, и если вы измените имя .... ужасный материал может случиться;) сериализации это вместо:

[SerializeField] Button myButton = null;

затем просто перетащите buttonreference к объекту с этим назначенным сценарием в редакторе и по телефону: myButton.image.color = Color.white;

, если вы хотите изменить использование текстур:

myButton.image.sprite = mySprite; //reference sprite in script too

Это работает только если вы используете Unity 4.6 и выше и как @Zee сказал, что вы должны импортировать UnityEngine.UI

Надеюсь, что это поможет :)

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