动画曲线
动画曲线允许你在动画播放时更改浮点参数。例如,如果有一个长度为 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)。我们正在使用该值来改变翻译的速度。你可以将此脚本附加到玩家游戏对象。