C# 如何在unity3D中以编程方式更改UI.按钮背景

C# 如何在unity3D中以编程方式更改UI.按钮背景,c#,unity3d,C#,Unity3d,作为标题,我一直在修改C#的unity中的UI.Button的背景。你能帮我吗:)。我阅读了UI.Button API,发现它有一个名为image的属性。我试图构建一个图像并将其分配给按钮。图像,但它没有工作 假设您在Hierarchy中的按钮名为button,则应将其称为: GameObject button; void Start() { button = GameObject.Find("Canvas").transform.Find("button").gameObject; } 要

作为标题,我一直在修改C#的unity中的UI.Button的背景。你能帮我吗:)。我阅读了UI.Button API,发现它有一个名为image的属性。我试图构建一个图像并将其分配给按钮。图像,但它没有工作

假设您在Hierarchy中的按钮名为button,则应将其称为:

GameObject button;

void Start() {
button = GameObject.Find("Canvas").transform.Find("button").gameObject;
}
要设置图像,请执行以下操作:

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

我建议不要使用Find(“按钮”),因为它可能会导致运行时错误,因为
GameObject.Find(objectname)
依赖于对象的名称,如果您更改了名称……可能会发生可怕的事情;) 将其序列化:

[SerializeField]按钮myButton=null

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

如果要更改纹理,请使用:

myButton.image.sprite=mySprite//也在脚本中引用精灵

只有当您使用Unity 4.6及更高版本并且@Zee说您需要导入UnityEngine.UI时,这才有效

希望有帮助:)

using UnityEngine.UI;