Unity设置字体颜色渐变

unity开发程序在一些必要的的程序的时候需要实现一些简单的渐变效果,之前不太懂都是直接让美术那边出图片用图片来代替,用着用着就让工程中多了很多没有必要的图片。后面找到了一种很好优化包的方法就是直接用代码来实现颜色的渐变。
最开始在网上看到了一些设置颜色渐变的都是直接对整体进行颜色设置,后来无意间发现了每个字由6个顶点构成,然后就修改成了下面设置颜色渐变的代码。

 public class Gradient : BaseMeshEffect
    {
   
   
        /// <summary>
        /// 前的颜色
        /// </summary>
        public Color32 OneColor = Color.white;
        /// <summary>
        /// 后的颜色
        /// </summary>
        public Color32 TwoColor = Color.black;
        /// <summary>
        /// 设置颜色的方式
        /// </summary>
        public Whole m_Whole = Whole.Every;
        /// <summary>
        /// 设置文字的刷新类型
        /// </summary>
        public GradientType m_GradientType = GradientType.TopToDown;

        /// <summary>
        /// 每个字的顶点数
        /// </summary>
        private int m_Everyword = 6;
        /// <summary>
        /// 
        /// </summary>
        /// <param name="vh"></param>
        public override void ModifyMesh(VertexHelper vh)
        {
   
   
            if (!IsActive())
            {
   
   
                return;
            }
            var vertexList = new List<UIVertex>();
            vh.GetUIVertexStream(vertexList);
            int count = vertexList.Count;
            if (count == 0)
            {
   
   
                return;
            }
            ApplyGradient(vertexList, 0, count);
            vh.Clear();
            vh.AddUIVertexTriangleStream(vertexList);
        }

        private void ApplyGradient(List<UIVertex> vertexList, int start, int end)
        {
   
   
            Vector4 temp_Vector = new Vector4
            {
   
   
                leftx = vertexList[0
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值