如何在unity3D中以编程方式更改UI.Button背景

时间:2015-04-23 09:18:59

标签: c# unity3d

作为标题,我一直在改变UI的背景。通过C#统一按钮。可以帮助我:)。我阅读了UI.Button API并看到它有一个名为image的属性。我试图构建一个图像并将其分配给Button。图像,但它没有工作!!

2 个答案:

答案 0 :(得分:1)

假设您在hirerarchy中的按钮被命名为按钮,则应该将其命名为:

GameObject button;

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

为了设置图像:

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

不要忘记!处理UI元素时,您需要始终通过调用UI库来启动C#脚本:

using UnityEngine.UI;

答案 1 :(得分:0)

我建议不要使用查找(&#34;按钮&#34;),因为它可能导致运行时错误,因为GameObject.Find(objectname)会中继对象名称并更改名称。 ......可怕的事情可能发生;) 序列化它:

[SerializeField] Button myButton = null;

然后只需将按钮引用拖动到编辑器中带有该指定脚本的对象,然后调用: myButton.image.color = Color.white;

如果你想改变纹理使用:

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

这仅适用于使用Unity 4.6及更高版本且@Zee表示您需要导入UnityEngine.UI

希望有帮助:)