[Unity 笔记] 代码中获取和修改GameObject的shader属性

获取方法如下:

gameObject.render.materials.GetFloat("propName");
gameObject.render.materials.SetFloat("propName", value);
gameObject.renderer.material.SetTexture("_propName", tex);
gameObject.renderer.material.GetTexture("_propName");

通过tex的替换,可以减少Shader渲染的性能消耗,而做出如天空盒,昼夜替换,云层和夜空更替的效果。


另,自己感觉Sky Shader中 云层1和2的 RGB 之和会比点乘 表现的更自然,更真实。

除外,天空盒Sky Shader中的LightModel可以自定义,并直接return s.Albedo值,即直接返回自定义的反射光,不需其他的影响。



你可能感兴趣的:(unity3d)