unity Image透明度渐变
日期: 2020-11-25 分类: 跨站数据测试 514次阅读
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
精华推荐