序列帧动画不能放在canvas2d节点的子节点下,否则不能显示。就算改了sprite 的(pixel unit)属性改变大小等,也只是在编辑环境下看得见,且还有透明度,实际运行中完全看不见。
序列帧动画节点应该是这样的
,如果要UI中显示精灵动画/序列帧动画,需要这样
public class UISpriteAni : MonoBehaviour
{
public Image _image;
/**动画播放速度 默认1秒播放10帧图片*/
public float animSpeed = 10;
/**序列帧数组*/
public Sprite[] SpriteArray;
//帧与帧间隔的时间
private float animTimeInterval = 0;
private int frameIndex = 0;
private int animLength = 0;
private float animTimer = 0;
void Start()
{
animTimeInterval = 1 / animSpeed;
animLength = SpriteArray.Length;
}
// Update is called once per frame
void Update()
{
animTimer += Time.deltaTime;
if (animTimer > animTimeInterval)
{
animTimer -= animTimeInterval;
frameIndex++;
frameIndex %= animLength;
_image.sprite = SpriteArray[frameIndex];
}
}
}