首先导入图片,我自己做了个简单的图片。

Unity3D制作2D精灵动画_unity

图片导入unity3d,修改sprite model,点击 sprite editor。

Unity3D制作2D精灵动画_自动生成_02

如果,图片中的各个元素距离比较开,可以用Slice自动划分。如果不行的话,手动划分下,然后点击Apply确定。这样就吧一副大图片上的各个元素分开了。

Unity3D制作2D精灵动画_2d_03

新建一个GameObject,在里面添加子GameObject,并添加Sprite Renderer。把整个动画基本的拼出来。

Unity3D制作2D精灵动画_动画_04

选中根节点,然后打开Animation窗口

Unity3D制作2D精灵动画_关键帧_05

点击播放按钮下的那个按钮,点击create new clip,在新打开的窗口,选择保存路径和名称,保存

Unity3D制作2D精灵动画_关键帧_06

点击录制按钮,把红线拖到后面的关键时间处

Unity3D制作2D精灵动画_动画_07

这个时候,拖动Scene里面的对象,就会自动生成关键帧。

Unity3D制作2D精灵动画_关键帧_08

动画动作完成后,打开animator窗口,设置默认动画

Unity3D制作2D精灵动画_unity_09

在左边设置变量

Unity3D制作2D精灵动画_unity_10

设置动画间的跳转,跳转的变量值

Unity3D制作2D精灵动画_动画_11

在根的GameObject上,添加脚本


using UnityEngine;
using System.Collections;

public class Ainm : MonoBehaviour {

private Animator anim;

// Use this for initialization
void Start () {
anim = this.GetComponent<Animator> ();
}

// Update is called once per frame
void Update () {
if (Input.GetKeyDown (KeyCode.RightArrow)) {
anim.SetInteger ("manact", 1);
} else if (Input.GetKeyUp (KeyCode.RightArrow)) {
anim.SetInteger ("manact", 0);
} else if (Input.GetKeyDown (KeyCode.LeftArrow)) {
anim.SetInteger ("manact", 2);
}else if(Input.GetKeyUp(KeyCode.LeftArrow)){
anim.SetInteger ("manact", 0);
}


}
}


于是,完成。