解决EnableKeyword(“_Emission“)运行状态不起作用

我使用的是Standard Shader,一开始"_Emission"没有开启

当我运行下面的代码,可以看到Inspector窗口已经生效,然而物体本身并没有重新开始渲染,反射没有开启

cs 复制代码
public GameObject go;
// Start is called before the first frame update
void Start()
{
    var m = go.GetComponent<MeshRenderer>().material;
    m.EnableKeyword("_Emission");
    m.SetColor("_EmissionColor", Color.red);
    m.globalIlluminationFlags = MaterialGlobalIlluminationFlags.RealtimeEmissive;
    go.GetComponent<MeshRenderer>().material = m;
}

解决方案: "_Emisson"参数保持开启状态,通过更改"_EmissionColor"来控制反射,_EmissionColor为纯黑时,效果等同于"_Emisson"参数关闭。

相关推荐
空中海几秒前
第六篇:Unity专项方向
unity·游戏引擎
wei_shuo8 分钟前
零门槛开发 3D 数字人:魔珐星云开放平台接入实战
3d·数字人·魔珐星云
神探小白牙43 分钟前
3D饼图,带背景图和自定义图例(threejs)
开发语言·前端·javascript·3d·vue
Full Stack Developme44 分钟前
Hutool DFA 教程
开发语言·c#
mxwin1 小时前
Unity Shader 屏幕空间反射 (SSR) 原理解析
jvm·unity·游戏引擎·shader
心前阳光1 小时前
Unity之利用特性给ScriptableObject分组
unity·游戏引擎
mxwin1 小时前
Unity Shader 屏幕空间法线重建 从深度缓冲反推世界法线——原理、踩坑与 URP Shader 实战
unity·游戏引擎·shader
空中海1 小时前
第五篇:Unity工程化能力
elasticsearch·unity·游戏引擎
xiaoshuaishuai81 小时前
【无标题】
开发语言·windows·c#
SunnyDays10111 小时前
C# 如何快速比较 Word 文档并显示差异
c#·对比 word 文档·比较 word 文档