动画曲线

动画曲线允许你在动画播放时更改浮点参数。例如,如果有一个长度为 60 秒的动画并且你想要一个浮点值/参数,则将其称为 X,以通过动画进行变化(如动画时间= 0.0s; X = 0.0,动画时间= 30.0 秒; X = 1.0,动画时间= 60.0s; X = 0.0)。

获得浮点值后,你可以使用它来翻译,旋转,缩放或以任何其他方式使用它。

对于我的例子,我将展示一个运行的玩家游戏对象。当播放动画播放时,播放器的翻译速度应随着动画的进行而增加。当动画结束时,翻译速度应该降低。

我创建了一个正在运行的动画片段。选择剪辑,然后在检查器窗口中单击编辑

http://i.stack.imgur.com/GqRvX.jpg

在那里,向下滚动到曲线。单击+号以添加曲线。将曲线命名为 ForwardRunCurve。单击右侧的微型曲线。它将打开一个带有默认曲线的小窗口。

http://i.stack.imgur.com/32zNy.jpg

我们想要一个抛物线形状的曲线,它会上升然后下降。默认情况下,该行有 2 个点。你可以通过双击曲线添加更多点。拖动点以创建类似于以下的形状。

http://i.stack.imgur.com/59x6F.jpg

在 Animator 窗口中,添加正在运行的剪辑。另外,添加一个与曲线名称相同的 float 参数,即 ForwardRunCurve。

播放动画时,浮动值将根据曲线而变化。以下代码将显示如何使用 float 值:

using UnityEngine;
using System.Collections;

public class RunAnimation : MonoBehaviour {

Animator animator;
float curveValue;

void Start()
{
    animator = GetComponent<Animator>();
}

void Update()
{
    curveValue = animator.GetFloat("ForwardRunCurve");

    transform.Translate (Vector3.forward * curveValue);
}

}

curveValue 变量在任何给定时间保存曲线的值(ForwardRunCruve)。我们正在使用该值来改变翻译的速度。你可以将此脚本附加到玩家游戏对象。