【问题标题】:unity5 primitive sphere color not changingunity5原始球体颜色不变
【发布时间】:2015-11-27 07:35:06
【问题描述】:

我已经使用它创建了线条,

LineRenderer line = new GameObject ("Line " + i.ToString ()).AddComponent<LineRenderer>();
line.SetColors (transRed, transRed);
Material lineGreen = new Material(Shader.Find("Particles/Alpha Blended"));
line.material = lineGreen;

还有一个像这样的球体,

GameObject mySphere = GameObject.CreatePrimitive(PrimitiveType.Sphere) as GameObject;
Material myMaterial = new Material(Shader.Find("Particles/Alpha Blended"));
myMaterial.color = transRed;
mySphere.GetComponent<MeshRenderer> ().material = myMaterial;

反红的颜色是,

transRed.a = 0.4f;
transRed.r = 1.1f;
transRed.g = 0.496078431f;
transRed.b = 0.0f;

我的问题是线和球体的颜色不同。线条是我想要的颜色,但球体是白色的。我正在使用相同的着色器和相同的颜色变量。有什么帮助吗?

【问题讨论】:

    标签: c# unity3d colors


    【解决方案1】:

    我相信“粒子/Alpha 混合”不关心 .color 设置。通过着色器的属性设置颜色,如下所示:

        myMaterial.SetColor("_Color", transRed);
    

    查看统一的文档here

    【讨论】:

    • @ree1991 对不起,这个怎么样:material.SetColor("_TintColor", transRed);我在这里找到了>>forum.unity3d.com/threads/…
    • 但它不起作用。渲染颜色为粉红色。但我的颜色不是粉红色。
    • 如果它像THIS 图像上的一个对象一样是粉红色的,那么您可能没有为该对象分配材质。
    • 没有添加着色器,在那里我可以看到我的颜色为 Tint Color。但是渲染的颜色是粉红色的(我可以在 Particles/Alpha Blended 的左侧,在检查器面板中的 Mesh Renderer 下方看到一个这种颜色的球),尽管我的颜色“transred”的透明度被应用了。
    • 所以您可能正在寻找GL Class。它正是这样做的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-05-11
    • 2021-11-10
    • 1970-01-01
    • 1970-01-01
    • 2021-06-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多