我想在游戏中给我的小方块添加一个发光效果。我成功地将发光效果应用在那些已经存在于游戏中的不同颜色的立方体上。
我想改变运行时产生的立方体的正常和发光颜色,但到现在为止我还没有成功。
我尝试了这段代码,通过上面的代码,我可以改变运行时生成的立方体的法线和发光颜色。
GetComponent<MeshRenderer>().material.color = cubeColors[cubeColorIndex];
//GetComponent<MeshRenderer>().material.SetColor("_Color", cubeColors[cubeColorIndex]);
GetComponent<MeshRenderer>().material.SetColor("_EmissionColor", cubeColors[cubeColorIndex] * 2f);
通过上面的代码,我可以应用新的发射色,但仍然不能成功地将主色应用到立方体材料上。还有,改变发射色强度的正确方法是什么?
这是我的立方体检查器的样子。
第一:在你使用的着色器中没有 _Color
而 _BaseColor
你想设置。
第二:你差不多了。其实发射强度只是一个乘法,但用的是 Mathf.LinearToGammaSpace
var meshRenderer = GetComponent<MeshRenderer>();
var material = meshRenderer.material;
material.SetColor("_BaseColor", cubeColors[cubeColorIndex]);
material.SetColor("_EmissionColor", cubeColors[cubeColorIndex] * Mathf.LinearToGammaSpace(2f));