博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
unity3dText倒影效果
阅读量:6582 次
发布时间:2019-06-24

本文共 1564 字,大约阅读时间需要 5 分钟。

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
vertexs = new List
(); 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
().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); }}

转载地址:http://laino.baihongyu.com/

你可能感兴趣的文章
ORACLE 存储过程异常捕获并抛出
查看>>
root用户重置其他密码
查看>>
Oracle推断值为非数字
查看>>
多年前写的一个ASP.NET网站管理系统,到现在有些公司在用
查看>>
vue-cli中理不清的assetsSubDirectory 和 assetsPublicPath
查看>>
从JDK源码角度看Short
查看>>
五年 Web 开发者 star 的 github 整理说明
查看>>
Docker 部署 SpringBoot 项目整合 Redis 镜像做访问计数Demo
查看>>
中台之上(五):业务架构和中台的难点,都是需要反复锤炼出标准模型
查看>>
inno setup 打包脚本学习
查看>>
php 并发控制中的独占锁
查看>>
React Native 0.20官方入门教程
查看>>
JSON for Modern C++ 3.6.0 发布
查看>>
我的友情链接
查看>>
监听在微信中打开页面时的自带返回按钮事件
查看>>
第一个php页面
查看>>
世界各国EMC认证大全
查看>>
最优化问题中黄金分割法的代码
查看>>
在JS中使用Ajax
查看>>
Jolt大奖获奖图书
查看>>