序列帧动画不能放在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];
}
}
}
本文介绍如何解决Unity中序列帧动画无法在Canvas2D的子节点下正常显示的问题,并提供了一种使用UI Image组件配合脚本来实现序列帧动画的方法。
2437

被折叠的 条评论
为什么被折叠?



