改变Unity中gameObject的颜色

时间:2015-07-23 16:24:37

标签: unity3d colors

好的,我有这个代码。

void Start () {
    gameObject.GetComponent<Renderer> ().material.color = Color.green;
}

我希望我的gameObject将其颜色更改为绿色。我将它导入为黑色,在检查器中它已变为绿色,但在实际应用中它不显示为绿色。我不能使用gameObject.renderer.material.color = Color.green因为团结告诉我它基本上已经过时了,我必须使用新版本。这将非常简单,但我错过了什么?提前谢谢。

更新:当我运行代码时,检查器中会弹出一个选项卡&Sprites-Default(instance)&#39;如果我将选择框更改为Unlit&gt;颜色有效。无论如何都要制作这根棒?

3 个答案:

答案 0 :(得分:4)

如果您尝试更改2D精灵颜色,请尝试GetComponent<SpriteRenderer>().color = Color.green而不是仅仅获取&#34;渲染器&#34;组件或尝试使用高光着色器而不是直接归属setColor()(您需要在场景中使用光源)。

答案 1 :(得分:1)

颜色会发生变化,但是您无法看到结果,因为材质中的着色器需要光线而您没有灯光,所以您总是看到它是黑色的,这样您就可以添加光源或更改材质着色器以使其不亮。

答案 2 :(得分:0)

总有两种可能无法看到此代码的结果。

  1. user2320445指出没有光(定向光或点光源)。

  2. 有一个灯,但您没有导入System.Collections命名空间,即您的程序错过了代码开头的语句using System.Collections;。如果要在不使用System.Collections命名空间的情况下编写代码,则可以替换行

    gameObject.GetComponent<Renderer> ().material.color = Color.green;
    

    gameObject.renderer.material.color = Color.green;
    

    这不需要您导入 System.Collections 命名空间。