欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Unity动画

程序员文章站 2022-07-13 22:07:09
...


基于animator的动画播放流程:

1.新建AnimatorController

Unity动画

2.创建动画状态

在上述界面右键Create state->Empty,并命名为Init,重复上述步骤并命名为State01,在Empty上右键Make Transition并在State01上左键点击,如下图所示。至此建立了两个动画状态Init和State01,并且创立了init状态到State01的两个切换开关(箭头)。由于Init状态与Extry相连,所以属于初始状态,即运行即**Init动画。
Unity动画

3.动画绑定

点击Init状态,并在Inspector面板中绑定动画,如下图所示,同理设置State01动画。动画为其他软件如Maya等导出,也可以自己通过animation简单制作一下。
Unity动画

4.设置开关

,如下图所示。点击+可以选择开关类型,在此选择int并命名为switch。
Unity动画

5.绑定开关

选择第二步中init到State01的箭头,在inspector面板中点击Conditions中+,选择switch,中间选项选为Equals,并把数值设为1。同样的设置应用到State01到Init的箭头,并把数值设为2。至此两个动画状态的开关设置好了。即switch=1时动画从init切换到State01, switch=2时动画返回到Init(因为init与entry相连,所以一般init状态动画为静止动画,如站立)。注意HasExitTime参数,如果动画切换时,需要当前动画播放完成后切换,则勾选上,而且一连串动画播放时也需要勾选上。
Unity动画

6.代码控制

在某一游侠物体上添加animator组件,并将上述建立的animatorController赋值给他,通过animator控制switch参数即可实现控制动画播放。

animator.SetInteger("switch", 1)

可以通过state名字单独控制动画播放,此种播放可以不用设置transition:

animator.Play("State01", 0, 0f);

7.动画倒播

按第四步设置参数speed,点击State01,并在inspector面板中选中Speed后边的parameter参数,并在Multiplier选择设置的speed,如下图所示。然后既可以通过如下代码控制播放速度,负数表示反向播放,下述代码表示从动画一半的地方反向播放。

          animator.SetFloat("speed", -1);
            animator.Play("ww", 0, 0.5f);
            //animator.Speed设置速度也可以

Unity动画
获取当前clip:

AnimationClip c = animator.GetCurrentAnimatorClipInfo(0)[0].clip
相关标签: Animator