资料
AnimationCurve
AnimationCurve
表示一条曲线。可在曲线上添加关键帧,编辑曲线。
水平轴表示时间,竖直轴表示曲线的高度
获取曲线高度方法,AnimationCurve.Evaluate
示例
循环移动Cube,Cube沿着曲线移动
using UnityEngine;
public class Test : MonoBehaviour
{
[SerializeField] AnimationCurve curve;//动画曲线
[SerializeField] Transform cube;//移动对象
float xValue = 0;//曲线x轴数值
Vector3 pos;//cube初始位置
bool isReduce;//是否减小xValue
[SerializeField] float effectFactor = 1;//修改该数值 可缩放曲线数值对cube的影响
private void Awake()
{
pos = cube.localPosition;
}
private void Update()
{
if (isReduce == false)
{
xValue += Time.deltaTime;
if (xValue >= 1)
{
xValue = 1;
isReduce = true;
}
}
else
{
xValue -= Time.deltaTime;
if (xValue <= 0)
{
xValue = 0;
isReduce = false;
}
}
//修改cube位置
cube.localPosition = pos + Vector3.up * curve.Evaluate(xValue) * effectFactor + Vector3.right * xValue * effectFactor;
}
}