【发布时间】:2019-01-02 11:58:05
【问题描述】:
我有一些代码,其中我通过如下代码生成两个自定义材质:
var m = new Material(Shader.Find("Unlit/Transparent"));
m.SetTexture("_MainTex", (Texture)Resources.Load("data/"+Path.GetFileNameWithoutExtension("data/"+DatabaseData.local_photo_name)));
我生成的其他材料如下:
var c = new Color(255, 0, 255, 1); //just an example color...
var m = new Material(Shader.Find("Unlit/Color"));
m.SetColor("_Color", c);
不,我想在运行时更改这些材质的不透明度。 (同时,材质已应用于生成的游戏对象的 MeshRenderer 组件)。
我尝试通过以下方式做到这一点:
var RRenderer = InteractRecord.GetComponent<MeshRenderer>();
RRenderer.material.color = new Color(RRenderer.material.color.r, RRenderer.material.color.g, RRenderer.material.color.b, o);
但是当我这样做时,我得到以下错误:
材质没有颜色属性“_Color” UnityEngine.Material:get_color() DBRecord:SetRecordOpacity(Single, Boolean) (在 Assets/scripts/DBRecord.cs:118) Main:Update() (在 Assets/scripts/Main.cs:66)
我该怎么做呢?我目前做错了什么?
如果有任何不清楚的地方,请告诉我,以便我澄清。
【问题讨论】:
-
所以当您使用 material.color 时会出现该错误?
-
是的,因为当我调用更新它的函数时,我得到了错误
-
好的,但是当你打电话给
m.SetColor("_Color", c);时不行你能告诉我们完整的错误吗? -
是的,我会更新问题