很久之前讲述过animation动画播放https://www.cnblogs.com/llstart-new0201/p/7294373.html,现在研究一下animator
(一)Project视图新建AnimatorController
(二)在上述界面右键Create state->Empty,并命名为Init,重复上述步骤并命名为State01,在Empty上右键Make Transition并在State01上左键点击,如下图所示。至此建立了两个动画状态Init和State01,并且创立了init状态到State01的两个切换开关(箭头)。由于Init状态与Extry相连,所以属于初始状态,即运行即激活Init动画。
(三)点击Init状态,并在Inspector面板中绑定动画,如下图所示,同理设置State01动画。动画为其他软件如Maya等导出,也可以自己通过animation简单制作一下。
(四)设置开关,如下图所示。点击+可以选择开关类型,在此选择int并命名为switch
(五)选择(二)中init到State01的箭头,在inspector面板中点击Conditions中+,选择switch,中间选项选为Equals,并把数值设为1。同样的设置应用到State01到Init的箭头,并把数值设为2。至此两个动画状态的开关设置好了。即switch=1时动画从init切换到State01, switch=2时动画返回到Init(因为init与entry相连,所以一般init状态动画为静止动画,如站立)。注意HasExitTime参数,如果动画切换时,需要当前动画播放完成后切换,则勾选上,而且一连串动画播放时也需要勾选上。
(六)代码控制
在某一游侠物体上添加animator组件,并将上述建立的animatorController赋值给他,通过animator控制switch参数即可实现控制动画播放
animator.SetInteger("switch", 1)
可以通过state名字单独控制动画播放,此种播放可以不用设置transition
animator.Play("State01", 0, 0f);
(七)动画倒播
按(四)设置参数speed,点击State01,并在inspector面板中选中Speed后边的parameter参数,并在Multiplier选择设置的speed,如下图所示。然后既可以通过如下代码控制播放速度,负数表示反向播放,下述代码表示从动画一半的地方反向播放
animator.SetFloat("speed", -1); animator.Play("ww", 0, 0.5f);
//animator.Speed设置速度也可以
获取当前clip
AnimationClip c = animator.GetCurrentAnimatorClipInfo(0)[0].clip
以后有时间会陆续更新,更复杂详细介绍参考https://www.cnblogs.com/lancidie/p/7818559.html