87 lines
1.4 KiB
C#
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();
|
|
}
|
|
}
|
|
} |