UnityEngine中Animator相关类的说明
阅读原文时间:2023年07月15日阅读:2

----------------------------------------------------------------------

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();

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 代码修改动画曲线时用,貌似很少用手动修改动画曲线

手机扫一扫

移动阅读更方便

阿里云服务器
腾讯云服务器
七牛云服务器

你可能感兴趣的文章