游戏扫描效果(原理尝试)

游戏扫描效果(原理尝试)

前言:自从《古墓丽影9》里面用了生存本能之后,后来玩到的游戏只要是带扫描资源或者敌人功能的,我都有频繁的使用这个功能(强迫症?),除了能方便发现资源之外,还能快速扫敌。自己搞一个简单的试试,就用shader实现吧。

  1. 简单的搭个环境,就长这样吧

描述

  1. 打算用深度值来模拟这条从近到远的线,或者叫扫描、脉冲什么的。写起来也很简单,就几句。把下面这个shader贴上去。
v2f vert(appdata v)
{
	v2f o;
	o.vertex = UnityObjectToClipPos(v.vertex);
	o.depth = UnityObjectToViewPos(v.vertex) * _ProjectionParams.w; // 相机的1/far 值
	o.uv = TRANSFORM_TEX(v.uv, _MainTex);
	return o;
}
			
fixed4 frag(v2f i) : SV_Target
{
	float invert = 1 - i.depth;

	if (abs(i.depth - _value / 2) < 0.03) // 线的宽度
	{
		return fixed4(invert * 2, 0.6, 0.6, 1);
	}
	else
	{
		fixed4 col = tex2D(_MainTex, i.uv);
		return col;
	}
}			
  1. shader里面的value值需要用外部的脚本去控制,也是简单几行模拟一下完事
if(Input.GetKey(KeyCode.Mouse2))
{
	flag = true;
}

if(script && flag)
{
	if(script.slider <= -0.6f)
	{
		script.slider = 1.5f;
		flag = false;
	}
	else
	{ 
		script.slider -= Time.deltaTime * moveSpeed;
	}
}
  1. 然后是在camera里面把上面的脚本挂上去,再执行替换SetReplacementShader就行。

  2. 效果长差不多就行(- -)在这里插入图片描述

  3. 对比一下原神里面的(其实我只是想说我有提纳里了)在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值