序列帧动画不能放在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];? ? ? } ? } }
?
|