在unity HDRP渲染管线下,编程获取材质球的preserve specular lighting
属性,可以使用以下代码:
Material material = GetComponent<Renderer>().material;
bool preserveSpecularLighting = material.GetFloat("_PreserveSpecularLighting") == 1;
其中,GetComponent<Renderer>().material获取了该对象上的材质球,material.GetFloat("_PreserveSpecularLighting")获取了该材质球上的_PreserveSpecularLighting属性的值,如果为1则表示该属性被启用,即preserve specular lighting属性被勾选。
答案错误,应该是bool preserveSpecularLighting = material.GetFloat("_EnableBlendModePreserveSpecularLighting") == 1;
非常抱歉,您是正确的。在Unity HDRP渲染管线下,确实是使用_EnableBlendModePreserveSpecularLighting属性来获取材质球的preserve specular lighting属性。以下是正确的代码:
Material material = GetComponent<Renderer>().material;
bool preserveSpecularLighting = material.GetFloat("_EnableBlendModePreserveSpecularLighting") == 1;
再次感谢您的指正。