----------------------------------------------------------------------
Animator
这个单独写,比较多AnimationClip
有个SampleAnimation,可以让Go采样到某个动画时间(直接设置那个时间的姿势)
有个只读的frameRate,帧率,采样频率(暂时不知道有什么应用)
AnimatorClipInfo
只包含AnimationClip和权重信息
AnimationClipPair
包含原始clip和目标clip,暂时不知道有什么用
AnimatorControllerParameter
貌似就是用来控制动画改变条件的
--------------------------------------------------------------------
AnimatorOverrideController
动态替换状态用,不重启动画状态机
AnimatorOverrideController is used to override clips from a controller to specialize some animations for a given avatar.Swapping Animator.runtimeAnimatorController with an AnimatorOverrideController based on the same AnimatorController at runtime doesn't reset state machine's current state.
代码
Animator animator = GetComponent<Animator>();
AnimatorOverrideController overrideController = new AnimatorOverrideController();
animator.runtimeAnimatorController = overrideController;
--------------------------------------------------------------------
AnimatorStateInfo
可以通过Animator获取
AnimatorTransitionInfo
可以通过Animator获取
--------------------------------------------------------------------
AnimatorUtility
里面有重要方法
public static void OptimizeTransformHierarchy(GameObject go, string[] exposedTransforms);
This function will remove all transform hierarchy under GameObject, the animator will write directly
transform matrices into the skin mesh matrices saving alot of CPU cycles.
第一个方法会把骨骼transform去掉,参数exposedTransforms是保留的骨骼transform名称,被保留的每个transform
会直接绑定到当前gameobject下
public static void DeoptimizeTransformHierarchy(GameObject go);
与第一个函数功能相反,恢复原样
这两个函数的调用都会引起Animator重建
A call to this function at runtime will re-initialize the animator.
--------------------------------------------------------------------
AnimationCurve 代码修改动画曲线时用,貌似很少用手动修改动画曲线