Young87

SmartCat's Blog

So happy to code my life!

游戏开发交流QQ群号60398951

当前位置:首页 >跨站数据测试

unity Image透明度渐变

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using Newtonsoft.Json;
using UnityEditor;
using UnityEditor.UI;

//透明度渐变方法
public enum FadeMode
{
    LeftTORight,
    UpToDown,
    LeftUpTORightDown,
    LeftDownTORightUp,
}

namespace UnityEngine.UI
{
    public class ImageFade : Image
    {

        public FadeMode FadeMode;
        public byte FadeStartAlpha  = 0;
        public byte FadeEndAlpha  = 255;
      //  public override void SetVerticesDirty()
        //{
       //    / base.SetVerticesDirty();
      //  }

        protected override void OnPopulateMesh(VertexHelper toFill)
        {
            base.OnPopulateMesh(toFill);
            UIVertex vertex = new UIVertex();
            //print($"toFill.currentVertCount={toFill.currentIndexCount},toFill.currentVertCount={toFill.currentVertCount}");
            for (int i = 0; i < toFill.currentVertCount; i++)
            {
                toFill.PopulateUIVertex(ref vertex, i);
                // print($"vertex[{i}] Position={vertex.position}");
                // print($"vertex[{i}] Color={vertex.color}");

                if (FadeMode == FadeMode.UpToDown)
                {
                    if (i == 0 || i == 3)
                    {
                        vertex.color = new Color32(vertex.color.r, vertex.color.g, vertex.color.b, FadeStartAlpha);
                        toFill.SetUIVertex(vertex, i);
                    }
                    else
                    {
                        vertex.color = new Color32(vertex.color.r, vertex.color.g, vertex.color.b, FadeEndAlpha);
                        toFill.SetUIVertex(vertex, i);
                    }
                }
                else if (FadeMode == FadeMode.LeftTORight)
                {
                    if (i == 0 || i == 1)
                    {
                        vertex.color = new Color32(vertex.color.r, vertex.color.g, vertex.color.b, FadeStartAlpha);
                        toFill.SetUIVertex(vertex, i);
                    }
                    else
                    {
                        vertex.color = new Color32(vertex.color.r, vertex.color.g, vertex.color.b, FadeEndAlpha);
                        toFill.SetUIVertex(vertex, i);
                    }
                }
                else if (FadeMode == FadeMode.LeftDownTORightUp)
                {
                    if (i == 0)
                    {
                        vertex.color = new Color32(vertex.color.r, vertex.color.g, vertex.color.b, FadeStartAlpha);
                        toFill.SetUIVertex(vertex, i);
                    }
                    else if (i == 1 || i == 3)
                    {
                        vertex.color = new Color32(vertex.color.r, vertex.color.g, vertex.color.b, (byte)((FadeEndAlpha + FadeStartAlpha) / 2));
                        toFill.SetUIVertex(vertex, i);
                    }
                    else
                    {
                        vertex.color = new Color32(vertex.color.r, vertex.color.g, vertex.color.b, FadeEndAlpha);
                        toFill.SetUIVertex(vertex, i);
                    }
                }
                else if (FadeMode == FadeMode.LeftUpTORightDown)
                {
                    if (i == 1)
                    {
                        vertex.color = new Color32(vertex.color.r, vertex.color.g, vertex.color.b, FadeStartAlpha);
                        toFill.SetUIVertex(vertex, i);
                    }
                    else if (i == 0 || i == 2)
                    {
                        vertex.color = new Color32(vertex.color.r, vertex.color.g, vertex.color.b, (byte)((FadeEndAlpha + FadeStartAlpha) / 2));
                        toFill.SetUIVertex(vertex, i);
                    }
                    else
                    {
                        vertex.color = new Color32(vertex.color.r, vertex.color.g, vertex.color.b, FadeEndAlpha);
                        toFill.SetUIVertex(vertex, i);
                    }
                }


            }

        }
    }


}


//https://www.jianshu.com/p/035242c078c5?utm_campaign 
//https://blog.csdn.net/duzixi

除特别声明,本站所有文章均为原创,如需转载请以超级链接形式注明出处:SmartCat's Blog

上一篇: OpenVINO——3. OpenVINO文字识别OCR运行demo

下一篇: mac解决docker: command not found

精华推荐