Unity-序列帧动画
以固定时间间隔 按序列切换图片 就是 序列帧动画的本质
当固定时间间隔足够短时 我们肉眼就会认为图片是连续动态的 进而形成动画(会动的画面)
它的本质和游戏的帧率概念有点类似
原理就是在一个循环中按一定时间间隔不停的切换显示的图片
代码控制生成序列帧动画
using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class lesson8 : MonoBehaviour
{public Sprite[] sprites;private SpriteRenderer spriteRenderer;private int nowIndex = 0;private float time = 0;// Start is called before the first frame updatevoid Start(){spriteRenderer = GetComponent<SpriteRenderer>();spriteRenderer.sprite = sprites[nowIndex];}// Update is called once per framevoid Update(){time += Time.deltaTime;if (time >= 0.03f){nowIndex++;if (nowIndex >= sprites.Length)nowIndex = 0;spriteRenderer.sprite = sprites[nowIndex];time = 0;}}
}
Animation窗口制作序列帧动画
方法一:
创建一个空物体
创建一个动画
直接将某一个动作的序列帧拖入窗口中
方法二:
直接将图片拖入 Hierarchy 层级窗口中
注意:需要修改动画帧率 来控制动画的播放速度
利用Animator进行动画控制
using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class lesson8_1 : MonoBehaviour
{private Animator animator;void Start(){animator = GetComponent<Animator>();}// Update is called once per framevoid Update(){if (Input.GetKeyDown(KeyCode.Space)){animator.SetBool("isDown", true);}if (Input.GetKeyUp(KeyCode.Space)){animator.SetBool("isDown", false);}}
}