unity3dText倒影效果

简介: 测试.pngusing UnityEngine;using UnityEngine.UI;using System.Collections.
img_fbd8d654c202fcf71f64bb2468236b56.png
测试.png
using UnityEngine;
using UnityEngine.UI;
using System.Collections.Generic;

[AddComponentMenu("UI/Effects/MirrorText")]
public class MirrorText : BaseMeshEffect
{
    //距离,限制范围0-30
    [Range(0, 30)]
    public float distance;

    public override void ModifyMesh(VertexHelper vh)
    {
        if (!IsActive() || vh.currentVertCount == 0)
        {
            return;
        }
        List<UIVertex> vertexs = new List<UIVertex>();
        vh.GetUIVertexStream(vertexs);
        UIVertex vt;
        int count = vertexs.Count;
        float miny = vertexs[0].position.y;
        float maxy = vertexs[0].position.y;
        for (int i = 1; i < count; i++)
        {
            if (vertexs[i].position.y < miny)
            {
                miny = vertexs[i].position.y;
            }
            else if (vertexs[i].position.y > maxy)
            {
                maxy = vertexs[i].position.y;
            }
        }
        float uiElementHeight = maxy - miny;
        float mirrorMinY = -maxy + 2 * miny - distance;
        Color32 top = GetComponent<Text>().color;
        Color32 bottom = new Color(top.r, top.g, top.b, 0);
        for (int i = 0; i < count; i++)
        {
            vt = vertexs[i];
            vertexs.Add(vt);
            Vector3 v = vt.position;
            v.y = -v.y + 2 * miny - distance;
            vt.position = v;

            //透明度效果
            vt.color = Color32.Lerp(bottom, top, (vt.position.y - mirrorMinY) / uiElementHeight);
            vertexs[i + count] = vt;
        }
        vh.Clear();
        vh.AddUIVertexTriangleStream(vertexs);
    }
}
相关文章
|
4月前
qml text跑马灯实现
qml text跑马灯实现
66 0
|
前端开发
webkit-box-reflect,前端Css文字倒影,制作炫酷的时钟倒影效果.
webkit-box-reflect,前端Css文字倒影,制作炫酷的时钟倒影效果.
116 0
|
图形学
Unity Particle System 制作刀光特效
Unity Particle System 制作刀光特效
530 1
Unity Particle System 制作刀光特效
实现圆形进度条(Unity3D)
今天分享一个制作圆形进度条的方法,原教程比较繁琐,这里给精简一下,更适合于新手
|
前端开发 JavaScript UED
纯css实现Material Design中的水滴动画按钮
纯css实现Material Design中的水滴动画按钮
纯css实现Material Design中的水滴动画按钮
UGUI系列-Dropdown控件研究(Unity3D)
Dropdown下拉列表,控件还是很强大的,做UI的时候用的比较多,现在就将Dropdown使用中的一些经验总结起来,分享给大家了
|
前端开发
css文字效果(文字剪贴蒙版,text-shodow的应用,文字排版等…)
原文:css文字效果(文字剪贴蒙版,text-shodow的应用,文字排版等…) 记录几种常见的文字效果 示例查看:http://pangyongsheng.github.io/cssFont/ 一、文字剪贴蒙版 在PS中,对文字图层栅格化,然后可将其他图层创建为文字的剪贴蒙版,而在c...
1289 0
|
图形学
unity的ugui中文竖排
using UnityEngine; using UnityEngine.UI; using System.Collections.Generic; [ExecuteInEditMode] public class VirticalText : Ba...
2918 0