UGUI之Text镜像效果
来源:互联网 发布:数据流程图软件 编辑:程序博客网 时间:2024/05/24 23:14
UGUI之Text镜像效果
先上效果图:
脚本Mirror直接挂在Text下,distance是镜像距离
Mirror脚本如下:
using UnityEngine;using System.Collections;using UnityEngine.UI;using System;using System.Collections.Generic;[AddComponentMenu("UI/Effects/Mirror")]public class Mirror : 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); }}
0 0
- UGUI之Text镜像效果
- Unity UGUI基础之Text
- UGUI之Text彩虹字
- UGUI之Text组件详解
- Unity3D-UGUI的Text组件渐变效果
- unity3d ugui text 文字颜色渐变效果~
- UGUI之滑动翻页效果
- unity4.6 Ugui中文教程之UGUI Rich Text详解
- UGUI - Text
- UGUI系统学习之Text控件
- UGUI之修改Text字间距
- UGUI之Text对齐至格子
- UGUI研究院之Text文本渐变
- UGUI之修改Text字间距
- 关于UGUI之修改Text字间距
- UGUI之菜单动画效果制作思路
- UGUI源码学习之初涉Text(二)
- UGUI研究院之Text文本渐变(十一)
- Java变量
- 链式二叉树
- JFrame如何设置背景图片
- c++类的内存分布
- java语言程序设计基础篇第九章编程练习题
- UGUI之Text镜像效果
- 数码管喷码机
- nginx.conf 配置文件说明
- 求同余幂
- java基础知识
- Systemtap Install
- ACM--公约数为1--HDOJ 1014--Uniform Generator--水
- springmvc拦截器实例
- JAVA学习笔记(一)