AnimationState

描述:

AnimationState 完全控制动画混合。

在大多数情况下动画界面是足够易于使用。如果您需要完全控制动画融合的任何过程,请使用 AnimationState。

AnimationState 接口允许您在的任何动画播放时修改速度、 权值、 时间和层。您还可以设置动画混合和 wrapMode。

参数说明
blendMode使用哪种混合模式?
clip此动画状态正在播放的剪辑。
enabled启用/禁用动画。
length动画剪辑的长度以秒为单位。
name动画的名字。
normalizedSpeed规范化播放速度。
normalizedTime规范化动画时间。
speed加快动画的播放速度,1 为正常播放速度。
time当前动画时间。
weight动画权重。
wrapMode动画的循环模式。
公有方法说明
AddMixingTransform添加一个动画的Transform。这使你减少创建动画必须的数量。
RemoveMixingTransform移除一个动画的Transform。

示例:

AnimationState.AddMixingTransform 添加混合Transform

public void AddMixingTransform(Transform mix, bool recursive = true);

参数说明
mix动画变换。
recursive是否动画所有子物体指定变换。(递归形式)

描述:

添加应该动画的变换。这允许你减少创建的动画的数量。

例如你可能挥手动画。你可能想在闲置角色或者走动角色上去播放挥手动画。你需要创建2个挥手动画一个给闲置的,一个给走动的。通过混合挥手动画将会完全控制肩膀。但是他可能影响不到更低的身体,并继续播放走动或者闲置的动画。因此你仅需要一个挥手动画。

如果recursive 是true 所有子物体的混合transform将会被逼真。如果你调用AddMixingTransform,所有动画曲线被使用。

  1. using UnityEngine;
  2. using System.Collections;
  3. public class ExampleScript : MonoBehaviour
  4. {
  5. public Animation anim;
  6. void Start()
  7. {
  8. // Adds a mixing transform using a path instead
  9. Transform mixTransform = transform.Find("root/upper_body/left_shoulder");
  10. // Add mixing transform
  11. anim["wave_hand"].AddMixingTransform(mixTransform);
  12. }
  13. }

?