这里在做的是一个player受伤闪烁的效果,用的是standard shader的自发光参数;
首先确定需要的变量:
[Header("Hurt Flash---")]
public float hurtFlashSpeed = 1f;
public float emissionFloor = 0.3f;
public float emissionCeil = 1f;
public float hurtMaxDuration = 1f;
private float timeSinceLastHurt;
private bool isInHurtState;
然后在OnEnable中获取材质,以及初始化:
// hurt flash
isInHurtState = false;
timeSinceLastHurt = 0;
playerMat = GetComponent<Renderer>().material;
playerMat.EnableKeyword("_EMISSION");
playerMat.SetColor("_EmissionColor", Color.clear);
之后在update中,进行闪烁:
// hurt flash --------------------------------------------- hurt flash effect
if (isInHurtState)
{
timeS