📅  最后修改于: 2023-12-03 15:01:07.607000             🧑  作者: Mango
在HDRP(高清晰渲染管线)中,Lit材质是一种非常常见的材质类型,可以产生高度逼真的渲染效果。其中,发射值(Emissive)是调整光源的亮度和颜色的主要参数之一。在本文中,我们将介绍如何使用C#编写代码来修改HDRP Lit的发射值。
在代码中,我们需要先获取到当前游戏对象的Lit材质,才能对其属性进行修改。可以使用以下代码获取Lit材质:
using UnityEngine;
using UnityEngine.Rendering.HighDefinition;
public class ChangeEmissive : MonoBehaviour
{
private Material litMaterial;
private void Start()
{
litMaterial = GetComponent<Material>();
}
}
在Start()方法中,我们通过GetComponent()方法来获取当前游戏对象的Material组件,然后将其转换为Lit材质(HighDefinitionMaterial类型)。
接下来,我们可以使用以下代码修改Lit材质的发射颜色:
private void ChangeEmissiveColor(Color emissiveColor)
{
if (litMaterial != null)
{
litMaterial.SetVector("_EmissiveColor", emissiveColor);
}
}
其中,SetVector()方法可以设置Lit材质的发射颜色。需要注意的是,发射颜色是通过一个Vector4类型的变量来表示的,其中RGBA分别对应颜色的四个分量。因此,我们需要将所需的颜色转换为Vector4类型。例如,以下代码可以将发射颜色设置为红色:
private void Start()
{
litMaterial = GetComponent<Material>();
ChangeEmissiveColor(new Color(1, 0, 0));
}
在Start()方法中,我们可以调用ChangeEmissiveColor()方法,将发射颜色设置为红色。
除了修改发射颜色外,我们还可以使用以下代码修改Lit材质的发射强度:
private void ChangeEmissiveIntensity(float emissiveIntensity)
{
if (litMaterial != null)
{
litMaterial.SetFloat("_EmissiveIntensity", emissiveIntensity);
}
}
其中,SetFloat()方法可以设置Lit材质的发射强度。需要注意的是,发射强度是一个标量值,取值范围为0到正无穷大。因此,我们可以将所需的强度值设置为一个浮点数。例如,以下代码可以将发射强度设置为3:
private void Start()
{
litMaterial = GetComponent<Material>();
ChangeEmissiveIntensity(3.0f);
}
在Start()方法中,我们可以调用ChangeEmissiveIntensity()方法,将发射强度设置为3。
通过上述代码,我们可以使用C#来修改HDRP Lit的发射值。需要注意的是,发射颜色和发射强度的修改是相互独立的,因此可以根据实际需要来选择修改方式。此外,我们也可以将以上代码封装成一个更加通用的方法,从而方便在其他代码中调用。