我有一个预制按钮。我想将它实例化为一个游戏对象。按钮默认附加一个组件。我想访问它并在实例化时分配颜色。我尝试了几种方法但出现了错误。那么有什么方法可以改变实例化预制件的图像颜色呢?
作为 2d UI 元素,它呈现在画布中。
[SerializeField] GameObject button;
GameObject child = Instantiate(button, new Vector2(0,0), Quaternion.identity);
//error: not a monobehavior object.
//Image rend = child.GetComponent<Image>();
//rend.tintColor = Color.blue;
//no renderer.
// Renderer boxRenderer = child.transform.GetComponent<Renderer>();
// boxRenderer.material.color = Color.blue;
//child.setparent();
您很可能不小心在脚本中使用了错误的
Image
类,例如在UnityEngine.UIElements.Image
、System.Drawing.Image
中定义的类,或者您自己的项目中名为Image
的类。
你正在使用 UGUI 组件(来自
UnityEngine.UI
命名空间),所以你想使用 UnityEngine.UI.Image
。仔细检查您正在使用的 Image
类,并进行必要的更改以确保您使用的是正确的类。然后你可以改变它的color
属性。