Unity3D Sprite2D 序列帧动画干货总结

发表于2018-03-07
评论1 1.43w浏览
使用Unity引擎开发2D游戏时,需要掌握包括Sprite的创建、动画的制作、2D物理的使用。下面给大家总结了四点在使用Sprite2D 序列帧动画干货,分享给大家,希望对大家有帮助。

1、导入及分割Sprite2D序列帧动画

导入的时候,要点有这些:
(1)SpriteMode一定要选择成Multiple,否则无法切割原图
(2)MipMap关掉。

分隔:点击SpriteEditor进入分隔模式。
分隔的时候我比较习惯选择Grid By Cell Count,对不齐让美术自己改去,那是他的事儿。
设置好行列之后,点击Slice完活,准备下一步。

2、创建Sprite2D动画

选择一个空GameObject,按Ctrl+6,点击Create,创建新动画。和创建普通的AnimClip没什么两样,创建完之后,把一帧一帧的动画拖进去即可。
如图:

3、设置Animator状态机,设置Transition和Condition

(2)操作之后,Unit用会自动为你的GameObject添加一个Animator组件和一个Animation Controller文件。
编辑它,我是的动画目前只有2个动作,普通跑和冲刺,当按下空格后开始冲刺,2秒回到普通跑,就这样的逻辑。

先看看状态机怎样设置
右键空白区域——Create State 创建State,
右键State上——Make Transition 创建状态转换
这里要在Rush 和normalRuan之前添加可切换的转换

Unity菜单,Windows——Anim Parameters添加条件,这里只增加1个 叫 IsRunning即可

回来,点击Transition,设置状态

这是为由NormalRun指向Rush的状态的转换做的条件,也就是当当前状态为NormalRun,并且IsRushing被设置为True时,执行这个转换。
类推,Rush到NormalRun的转换应该为IsRushing (False)

4、如何调用Sprite2D动画

在你的脚本中,获得Animator的引用,用哪种方式,自便。
publkic Animator animator;

//开始Rush
animator.SetBool("IsRushing", true);

//结束Rush
animator.SetBool("IsRushing", true);

这里可以看出,状态的转换条件,是通过字符串索引的。

如社区发表内容存在侵权行为,您可以点击这里查看侵权投诉指引