Unity3D Sprite2D 序列帧动画干货总结
发表于2018-03-07
使用Unity引擎开发2D游戏时,需要掌握包括Sprite的创建、动画的制作、2D物理的使用。下面给大家总结了四点在使用Sprite2D 序列帧动画干货,分享给大家,希望对大家有帮助。
1、导入及分割Sprite2D序列帧动画
导入的时候,要点有这些:
(1)SpriteMode一定要选择成Multiple,否则无法切割原图
(2)MipMap关掉。
(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);
这里可以看出,状态的转换条件,是通过字符串索引的。