Как изменить цвет текста и изображения кнопки в Unity? - PullRequest
1 голос
/ 27 марта 2020

Я хотел бы изменить цвет кнопки при нажатии, но не знаю, как получить доступ к цвету. Я вижу, что моя кнопка имеет компонент Image, который включает этот цвет, однако я не могу получить к нему доступ. У меня та же проблема с текстом кнопки, когда я также не нашел способ доступа к ней.

Я пытался следовать этому учебнику, но получаю ошибку (подробнее на скриншотах) .

using UnityEngine.UIElements;

public class GameManager : MonoBehaviour {
//...
 // This is my onclick function
 public void SelectLevel(int level ) {
  Debug.Log(level);
  GameObject btn = GameObject.Find("Btn" + level);
  Debug.Log(btn);
  Image imgButton = btn.GetComponent<Image>();
  Debug.Log(imgButton);
 }
}

enter image description here

enter image description here

enter image description here

Ответы [ 2 ]

3 голосов
/ 27 марта 2020

То, что вы хотите, это не UnityEngine.UIElements.Image из пространства имен

using UnityEngine.UIElements;

, а скорее UnityEngine.UI.Image

using UnityEngine.UI;
0 голосов
/ 27 марта 2020

Попробуйте изменить цвет кнопки:

btn.GetComponent<Image>().color = Color.red;

Если вы хотите другой цвет, не забудьте создать его экземпляр как:

new Color(rValue,gValue,bValue);

И если вы хотите, чтобы это произошло onClick:

btn.onClick.AddListener(MethodToChangeColor);

Или с лямбда-выражением:

btn.onClick.AddListener(() => { btn.GetComponent<Image>().color = Color.red; });

Также убедитесь, что к вашему Button700 подключен компонент Image !!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...