動畫曲線

動畫曲線允許你在動畫播放時更改浮點引數。例如,如果有一個長度為 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)。我們正在使用該值來改變翻譯的速度。你可以將此指令碼附加到玩家遊戲物件。