-----------------------------------------
4个animatorController是怎么回事?
分别对应 1镜像动画速度>0 2镜像播放速度<0 3非镜像播放速度>0 4非镜像播放速度<0
-----------------------------------------
MecanimControl类分析
基本思路是建立animationData的list,用于添加删除runtime动画
核心代码位于MecanimControl->_playAnimation
每次播放新建立AnimatorOverrideController,设置state,并替换默认的AnimationController
(每次播放new AnimatorOverrideController有点浪费)
默认animatorController(4个,用法相同)中有3个状态,Default,State1,State2(这两个state默认
是有动画在上面的),每次新建立AnimatorOverrideController都会替换State1和State2
State1 用 currentAnimationData.clip
State2 用 targetAnimationData.clip
最后直接根据blendingTime直接调用
animator.Play或animator.CrossFade
-----------------------------------------
注意一点
Demo中的AnimationClip是以动画形式直接存在工程中的
在AddClip时是用animData.clip = (AnimationClip) Instantiate(clip);
猜测如果是使用从bundle加载进来的clip就直接(AnimationClip)clip就可以,不经过bundle就没有引用计数?就需要clone?
-----------------------------------------
问题
没用到Mecanim的状态连线功能,都是直接切换到某个状态直接播放的,完全是代码控制,暂时不知道能不能扩展使用动画融合
-----------------------------------------