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

相关推荐
缺点内向1 小时前
C#: 高效移动与删除Excel工作表
开发语言·c#·.net·excel
yue0083 小时前
C# 分部类读取学生信息
开发语言·c#
聪明努力的积极向上3 小时前
【C#】事件简单解析
开发语言·c#
qq_12498707534 小时前
基于C#的贵州省黔北地区乡村避暑生活共享平台设计与实现(源码+论文+部署+安装)
c#·毕业设计·asp.net·生活
LateFrames10 小时前
C# 中,0.1 在什么情况下不等于 0.1 ?
开发语言·c#
一个小狼娃12 小时前
Android集成Unity避坑指南
android·游戏·unity
极客柒12 小时前
Unity 协程GC优化记录
java·unity·游戏引擎
黄思搏13 小时前
Unity SpriteRenderer 进度条 Shader 实现
unity·游戏引擎
猫屋小鱼丸14 小时前
手把手教你在unity中实现一个视觉小说系统(一)
unity
mudtools15 小时前
解放双手!使用Roslyn生成代码让你的 HTTP 客户端开发变得如此简单
低代码·c#·.net