我在通过脚本统一设置法线贴图时遇到问题。我有一个法线贴图,我想将它分配给目标对象的材质。
renderer.material = new Material(oldMaterial);
renderer.material.SetTexture("_BumpMap", normalTexture);
此行适用于指定纹理。但是在我打开检查器并单击材料组件之前,目标对象的法线贴图不会更新。我可以使用这种技术更新反照率纹理,它可以工作 是否有强制材料更新其属性的功能? 有什么想法吗?
答案 0 :(得分:2)
尝试添加一个:
renderer.material.shaderKeywords = new string[1]{"_NORMALMAP"};
答案 1 :(得分:0)
根据Unity的文档,您首先需要EnableKeyword
:_NORMALMAP
。然后,可以显示您提供的法线贴图。有关更多说明,请参见以下代码或this website。
//Fetch the Renderer from the GameObject
renderer = GetComponent<Renderer> ();
//Make sure to enable the Keywords
renderer.material.EnableKeyword ("_NORMALMAP");
//Set the Normal map using the Texture
renderer.material.SetTexture("_BumpMap", normalTexture);