c1_unity/Assets/Scripts/Component/UI/Emoji/UVAnimationGraphic.cs
2023-04-03 11:04:31 +08:00

87 lines
1.4 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
namespace BF
{
[ExecuteInEditMode]
public class UVAnimationGraphic : MaskableGraphic
{
#region
//默认shader
private const string _defaultShader = "Hidden/UI/Emoji";
//材质
private Material _defaultMater = null;
//sprite
private Sprite _mainSprite;
public Sprite MainSprite
{
get { return _mainSprite; }
set
{
_mainSprite = value;
SetAllDirty();
}
}
//列数 帧数
private int _cellAmount = 1;
public int CellAmount
{
get { return _cellAmount; }
set { _cellAmount = value; }
}
//播放速度
private float _speed;
public float Speed
{
get { return _speed; }
set { _speed = value; }
}
//override
public override Texture mainTexture
{
get
{
if (_mainSprite == null)
return base.mainTexture;
else
return _mainSprite.texture;
}
}
public override Material material
{
get
{
if (_defaultMater == null)
{
_defaultMater = new Material(Shader.Find(_defaultShader));
_defaultMater.EnableKeyword("EMOJI_ANIMATION");
_defaultMater.SetFloat("_CellAmount", _cellAmount);
_defaultMater.SetFloat("_Speed", _speed);
}
return _defaultMater;
}
}
#endregion
protected override void OnPopulateMesh(VertexHelper vh)
{
vh.Clear();
}
}
}