Unity随记(五) 利用shader实现简单的受击闪白与濒死效果

先上效果图
在这里插入图片描述
小蓝吧小红逼到了墙角乱砍一番,受击效果与濒死效果就是如图所示,简单的实现则是通过颜色叠加的方式,在最终的颜色值上叠加上白色与红色,然后代码控制简单的交替变化。所以在shader方面仅仅只用进行一个颜色的加法操作即可:

fixed4 frag(v2f i) : SV_Target
{
	fixed4 col = tex2D(_MainTex, i.uv) * _Tint;

	//受击闪白处理
	col.rgb += _ColorGlitter;

	return col;
}

一般的都会有个_Tint的参数来改变最终的颜色值,但是正常情况下如果不再乘上一个放大倍数,仅仅是乘上这个_Tint值,那么最终的颜色值是会变暗的,所以为了颜色看起来更加舒服,这里采用了额外加的一个颜色参数来简单实现这里的效果。当然如果想仅仅通过_Tint参数想再叠加白色进去,那就是不行的了,因为乘上白色fixed4(1,1,1,1)的最终颜色值还是原来的颜色值。

接下来就是配合C#来控制_ColorGlitter参数的变化达到效果,这里就简单用一个协成来模拟:

public void HitFlash()
{
   
    StartCoroutine(hitFlash());
}

IEnumerator hitFlash(
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值