测试.png

 using System;
using System.Collections.Generic;namespace UnityEngine.UI.Extensions
{/// <summary>/// Curved text.让文本按照曲线进行显示 【注意对Image的变形 也是可以的】/// 说明: 对Text的操作就和 shadow 和 outline 组件类似。/// </summary>// [RequireComponent(typeof(Text), typeof(RectTransform))][AddComponentMenu("UI/Effects/Extensions/Curved Text")]public class CurvedText : BaseMeshEffect{// 曲线类型public AnimationCurve curveForText = AnimationCurve.Linear(0, 0, 1, 10);// 曲线程度public float curveMultiplier = 1;private RectTransform rectTrans;#if UNITY_EDITORprotected override void OnValidate(){base.OnValidate();if (curveForText[0].time != 0){var tmpRect = curveForText[0];tmpRect.time = 0;curveForText.MoveKey(0, tmpRect);}if (rectTrans == null)rectTrans = GetComponent<RectTransform>();if (curveForText[curveForText.length - 1].time != rectTrans.rect.width)OnRectTransformDimensionsChange();}
#endifprotected override void Awake(){base.Awake();rectTrans = GetComponent<RectTransform>();OnRectTransformDimensionsChange();}protected override void OnEnable(){base.OnEnable();rectTrans = GetComponent<RectTransform>();OnRectTransformDimensionsChange();}/// <summary>/// Modifies the mesh. 最重要的重载函数/// </summary>/// <param name="mesh">Mesh.</param>public override void ModifyMesh(VertexHelper vh){if (!IsActive())return;// 从mesh 得到 顶点集List<UIVertex> verts = new List<UIVertex>();vh.GetUIVertexStream(verts);// 顶点的 y值按曲线变换for (int index = 0; index < verts.Count; index++){var uiVertex = verts[index];//Debug.Log ();uiVertex.position.y += curveForText.Evaluate(rectTrans.rect.width * rectTrans.pivot.x + uiVertex.position.x) * curveMultiplier;verts[index] = uiVertex;}// 在合成meshvh.AddUIVertexTriangleStream(verts);}protected override void OnRectTransformDimensionsChange(){var tmpRect = curveForText[curveForText.length - 1];if (rectTrans != null){tmpRect.time = rectTrans.rect.width;curveForText.MoveKey(curveForText.length - 1, tmpRect);}}}
}

unity3d曲线text文本相关推荐

  1. Unity3D之UGUI基础2:Text文本

    一.两个基本组件 Rect Transform:用于控制UI物体的基本属性 Canvas Renderer:画板UI渲染器,必备且不可编辑 这两个组件是所有UI的必备组件 using UnityEng ...

  2. 关于input type=“text”文本框的 默认宽度

    当文本框的td设置宽度设置为百分比时,出现了一些没有搞懂的地方. 类选择设置td的width 为百分比时,通常 要定义父元素的宽度,在我的实战中父元素只能是table,给定table时. 而且这就是说 ...

  3. JavaScript 技术篇 - js在一个元素节点下包含多个text文本情况下的指定文本提取方法

    结构如下,该元素下包含两个 text 文本,我们只想提取第一个文本内容. 常规的 innertext.textContent 和 outerText 方法只能提取到全部的文本. 可以通过 childN ...

  4. JavaScript 技术篇-js只获取本节点text文本,不包含子节点

    innerText 和 textContent 都是获取所有节点的 firstChild.nodeValue 是获取本节点的text文本,不包含子节点的. 喜欢的点个赞❤吧!

  5. Symbol Mc1000 Text文本阅读器整体代码

    using System; using System.ComponentModel; using System.Data; using System.Drawing; using System.Tex ...

  6. 从Text文本中读值插入到数据库中

    /// <summary>   /// 转换数据,从Text文本中导入到数据库中   /// </summary>   private void ChangeTextToDb( ...

  7. VBA读取html表格内容,科学网—VBA读取word文档表格中table的cell的text文本 - 付安民的博文...

    VBA读取word文档表格中table的cell的text文本 已有 11546 次阅读 2010-6-4 16:40 |个人分类:学习篇|系统分类:科研笔记 Sub Readtable() Dim ...

  8. uni-app中text文本组件的基本使用

    text文本组件的用法 001 - text 组件的属性 属性 类型 默认值 必填 说明 selectable boolean false 否 文本是否可选 space string . 否 显示连续 ...

  9. 小程序PHP字体,微信小程序在text文本实现多种字体样式

    这篇文章主要介绍了微信小程序在text文本实现多种字体样式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 微信小程序比较特别,它的wxml只允许用自 ...

最新文章

  1. 2022-2028年中国防臭袜行业投资分析及前景预测报告
  2. VTK:RT 分析源用法实战
  3. 使用集合映射和关联关系映射_使用R进行基因ID映射
  4. Java之HashMap.values()转List时的错误和正确操作
  5. submit与button区别提交区别
  6. 【转】关于浮点数的精度与取值范围的问题
  7. GitHub 40000星!收下这份宇宙最强「程序员装备指南」
  8. 算法分析与设计:众数问题(C++,分治法)
  9. 京瓷打印机m5521cdn_京瓷ECOSYS M5521cdn驱动
  10. Matlab里的数据类型
  11. 2位8421bcd码相加实验
  12. 微信小程序入门:和风天气小程序
  13. 使用微信js-sdk上传语音并将语音下载到服务器
  14. 视频号小程序也能投放朋友圈引流变现了;附带视频号运营手册丨国仁网络
  15. 三星证实遭黑客入侵:Galaxy手机源代码泄露
  16. 微信小程序_在当前页面刷新数据 / 重载当前页面
  17. 解决webbench运行时卡住的问题
  18. metamask 最新版官方版
  19. 三防手持平板电脑在工业的发展趋势
  20. python中自然数e怎么表示_python e怎么表示

热门文章

  1. HTML5之webSocket使用
  2. 两种常见挂载Jenkins slave节点的方法
  3. 程序媛计划——python初级class5~13
  4. ArcGIS Engine开发之旅09--几何对象和空间参考
  5. 计算机网络第4章(网络层)
  6. python方法名加__学习python中__name__方法使用
  7. 尚硅谷的 ediary 笔记_干货分享 | 硅谷创新加速营第五讲教您合理规划融资需求 降低投资风险...
  8. Seata AT模式
  9. 通过福禄克测试仪进行数据中心机房各个区域的测试或认证
  10. Qt 使用代码编写的自定义控件类