在做项目的时候,想到要做一个简单的传送效果,大概类似于下图
简单的来说,效果可分为两个部分:
shader部分
代码部分
这种渐变的效果是通过动态改变材质颜色的透明度来实现的,所以需要的一个关键就是shader的渲染队列必须为Transparent,代码如下:
Tags{ "Queue" = "Transparent" }
在unity面板上就是材质的_MainColor
知道以上的关键之后,代码的实现就比较简单了
GetComponent<Renderer>().material.color//获取材质的主颜色
由于材质颜色的透明度的只读的,所以我们只能通过修改颜色来达到修改透明度的效果,颜色的修改可以通过插值来做
Name.GetComponent<Renderer>().material.color = Color.Lerp(Name.GetComponent<Renderer>().material.color, new Color(1, 1, 1, 1), Time.deltaTime * Speed);
最后自己设定好触发的机制就可以了~