Unity3D Sprite2D 序列帧动画 干货总结

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

导入的时候,要点有这些:
Unity3D Sprite2D 序列帧动画 干货总结_第1张图片

(1)SpriteMode一定要选择成Multiple,否则无法切割原图
(2)MipMap关掉。

分隔:点击SpriteEditor进入分隔模式。
分隔的时候我比较习惯选择Grid By Cell Count,对不齐让美术自己改去,那是他的事儿。
Unity3D Sprite2D 序列帧动画 干货总结_第2张图片
设置好行列之后,点击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之前添加可切换的转换
Unity3D Sprite2D 序列帧动画 干货总结_第3张图片

Unity菜单,Windows——Anim Parameters添加条件,这里只增加1个 叫 IsRunning即可
Unity3D Sprite2D 序列帧动画 干货总结_第4张图片
回来,点击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);

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

你可能感兴趣的:(Unity3D Sprite2D 序列帧动画 干货总结)