效果如下
原理:
倒影区域也用图片本体,做个镜像翻转(RectTransform中的scale的Y设为-1),然后shader对图片进行处理,达到一个透明度Y方向上渐变的效果。
实现:
因为是UGUI上使用,推荐直接在内置的UI-Default.shader中进行修改(官网可以下载)。
要达到Y方向上的透明度渐变,可以使用UV坐标中的v作为变化因子,通过一个衰减曲线达到效果,我这里采用的指数函数(Pow),关键代码其实就下面这一句,如下:
color.a *= pow(1 - IN.texcoord.y, _Pow);
_Pow就是调节范围变化:

而整体透明度调整可以直接修改RawImage中的Color的Alpha即可(这里就直接修改的顶点颜色)。
完整代码:
Shader "Unlit/UIShadow"
{
Properties
{
[PerRendererData] _MainTex ("Sprite Texture", 2D) = "white" {}
[HideInInspector]_Color ("Tint

本文介绍了如何在Unity的UGUI上创建一个图片倒影效果,通过镜像翻转图片并使用shader处理,实现透明度在Y方向上的渐变。关键在于修改内置的UI-Default.shader,利用UV坐标和指数函数控制透明度变化。此外,还提供了完整的shader代码示例。
最低0.47元/天 解锁文章
341

被折叠的 条评论
为什么被折叠?



