【发布时间】:2022-07-30 17:25:35
【问题描述】:
我正在尝试制作一个基本的“灯条”类型的东西,一个开关可以打开和关闭它。我创建了两种材料(一种是自发光的,一种不是)。如果我在设计时设置它们,它们会按预期工作——发射的一个照亮房间,另一个不照亮。但是,当我尝试使用我的开关和灯光代码使材料可切换时,发射不起作用。材质变为发光、颜色鲜艳的材质,但房间内的灯光完全没有变化。
这是我用来更改材料的代码(有效,只是不包括新材料的发射,如果适用):
if(Ship.lights) {
GetComponent<MeshRenderer>().material = on;
} else {
GetComponent<MeshRenderer>().material = off;
}
这类似于 SO (Unity emission isn't updating when I change the material) 上的另一个问题,但这个人似乎正在将他现有的材料更改为发光材料,而我正在切换到发光材料。只是为了好玩,我尝试添加他建议的行(转载如下),但没有效果。
mat.EnableKeyword("_EMISSION");//This is a bug in unity
我假设我需要告诉 Unity 重新计算场景中的照明,或者在我更改材质以使对象发光时执行其他操作。想法?诚然,我对 3D 建模非常陌生,所以我很有可能正在尝试以错误的方式做某事。
【问题讨论】:
标签: unity3d