概述
本文通过两种方式播放序列动画,第一种(逐图播放)简单易操作但性能略差,第二种(图集播放)性能相对更好一些但操作相对复杂。不过还是建议使用第二种,因为第二种更适合做合理的架构,不仅仅是序列动画,平时用的 UI 资源也可以一起放到图集资源中,通过不同的名称进行获取。
注意:本文关注的是那种多张图切换的动画,如果需要类似于 Spine 那种形变动画可以看我的另外一篇文章:【Unity】在Unity 3D中使用Spine开发2D动画
播放序列帧动画
准备图片
首先将你所有的图片都导入到项目中,然后在 Project 视窗选中你所有的图片并将其 Texture Type 改为 Sprite(2D and UI),然后确保 Sprite Mode 为 Single 。
如图:
准备脚本代码
using System.Collections;
using UnityEngine;
using UnityEngine.UI;
namespace Core
{
/// <summary>
/// 序列帧动画播放器
/// 将该脚本挂载到拥有Image组件的GameObject下即可
/// framesPerSecond用于调节每一秒播放的帧数
/// sprites用于存放每一帧的图片
/// <remarks>开发者 : Genesis (*╹▽╹*) </remarks>
/// </summary>
public class SequenceFramePlayer : MonoBehaviour
{
/// <summary>
/// 每秒播放的帧数
/// </summary>
public float framesPerSecond = 10.0f;
/// <summary>
/// 存储序列帧动画的所有帧
/// </summary>
public Sprite[] sprites;
private Image _image;
private void Start(