好的,我有这个代码。
void Start () {
gameObject.GetComponent<Renderer> ().material.color = Color.green;
}
我希望我的gameObject将其颜色更改为绿色。我将它导入为黑色,在检查器中它已变为绿色,但在实际应用中它不显示为绿色。我不能使用gameObject.renderer.material.color = Color.green
因为团结告诉我它基本上已经过时了,我必须使用新版本。这将非常简单,但我错过了什么?提前谢谢。
更新:当我运行代码时,检查器中会弹出一个选项卡&Sprites-Default(instance)&#39;如果我将选择框更改为Unlit&gt;颜色有效。无论如何都要制作这根棒?
答案 0 :(得分:4)
如果您尝试更改2D精灵颜色,请尝试GetComponent<SpriteRenderer>().color = Color.green
而不是仅仅获取&#34;渲染器&#34;组件或尝试使用高光着色器而不是直接归属setColor()(您需要在场景中使用光源)。
答案 1 :(得分:1)
颜色会发生变化,但是您无法看到结果,因为材质中的着色器需要光线而您没有灯光,所以您总是看到它是黑色的,这样您就可以添加光源或更改材质着色器以使其不亮。
答案 2 :(得分:0)
总有两种可能无法看到此代码的结果。
user2320445指出没有光(定向光或点光源)。
有一个灯,但您没有导入System.Collections
命名空间,即您的程序错过了代码开头的语句using System.Collections;
。如果要在不使用System.Collections
命名空间的情况下编写代码,则可以替换行
gameObject.GetComponent<Renderer> ().material.color = Color.green;
带
gameObject.renderer.material.color = Color.green;
这不需要您导入 System.Collections 命名空间。