解决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"参数关闭。

相关推荐
空中海9 小时前
第二篇:Unity中级阶段(核心开发能力)
unity·游戏引擎
北京理工大学软件工程12 小时前
C#111
开发语言·c#
DaLiangChen16 小时前
Unity 实用工具:动态绘制物体边界包围盒(支持屏幕固定线宽)
unity·游戏引擎
bryant_meng16 小时前
【3D】Stereo Matching learning notes
计算机视觉·3d·双目匹配
张老师带你学16 小时前
Unity 食物 农产品相关
科技·游戏·unity·游戏引擎·模型
mxwin16 小时前
Unity Custom Interpolators与半透明阴影的原理与实战
unity·游戏引擎·shader
晴夏。16 小时前
UE5第三人称模板实现及相关引擎源码分析
unity·ue5·游戏引擎·ue
雪飞鸿18 小时前
ArrayPoolWrapper简洁、安全的ArrayPool
c#·.net·.net core·原创
海盗123419 小时前
C#上位机开发-S7协议通信
开发语言·c#