【问题标题】:How to change Text and Image color of button in Unity?如何更改 Unity 中按钮的文本和图像颜色?
【发布时间】:2020-07-02 21:18:45
【问题描述】:

我很想在点击时更改按钮颜色,但不知道如何访问颜色。我看到我的按钮具有包含该颜色的组件图像,但是我无法访问它。我对按钮的文本也有同样的问题,我也没有找到如何访问它的方法。

我已尝试关注this 教程,但我遇到了错误(更多关于屏幕截图)。

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);
 }
}

【问题讨论】:

    标签: c# unity3d


    【解决方案1】:

    你想要的不是命名空间中的UnityEngine.UIElements.Image

    using UnityEngine.UIElements;
    

    而是UnityEngine.UI.Image

    using UnityEngine.UI;
    

    【讨论】:

    • 非常感谢!这解决了我的问题。 VSCode 在自动补全中无法识别UnityEngine.UI,只有UnityEngine.UIElements 可用,但如果我使用UnityEngine.UI,编译代码没有任何问题。
    【解决方案2】:

    试试这个来改变按钮的颜色:

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

    如果你想要不同的颜色,记得像这样实例化它:

    new Color(rValue,gValue,bValue);
    

    如果你想在 onClick 上发生:

    btn.onClick.AddListener(MethodToChangeColor);
    

    或者用 lambda 表达式:

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

    还要检查您的 Button700 是否附加了图像组件!

    【讨论】:

    • 感谢您的帮助,但问题实际上出在我使用的导入中,应该是 using UnityEngine.UI; 而不是 using UnityEngine.UIElements;
    猜你喜欢
    • 1970-01-01
    • 2020-11-07
    • 2021-11-12
    • 1970-01-01
    • 2012-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多