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(); } } }