Unity中的动画曲线
Animation Curves on Imported Clips
动画曲线可以附加到动画导入设置的动画选项卡中的导入动画片段。
这些曲线允许您将额外的动画数据添加到导入的剪辑,这可以让您根据动画制作者的状态来动画其他项目的时间。例如,在冰冷条件下的游戏中,可以使用额外的动画曲线来控制粒子系统的发射速率,以显示玩家在冷空气中的冷凝呼吸。
要为导入的动画添加曲线,首先在项目视图中选择导入的动画文件,然后在检查器的导入设置中选择动画按钮。
展开curves标题,然后单击加号图标将新曲线添加到当前动画片段。如果导入的动画文件分割为多个动画片段,则每个片段都可以有自己的自定义曲线。
展开曲线标题,然后单击加号图标将新曲线添加到当前动画片段。如果导入的动画文件分割为多个动画片段,则每个片段都可以有自己的自定义曲线。
曲线的X轴表示标准化时间,并且始终在0.0和1.0之间(分别对应于动画片段的开始和结束,而不管其持续时间)。
动画曲线导入
创建关键点:左键双击
删除关键点:
**(1)**鼠标移动至关键点上,右键->Delete Key。
**(2)**左键单击关键点,然后按键盘上的delete
**设置曲线类型:**鼠标移动至关键点上,右键->
**Auto:**根据关键点自动设置曲线。
**Free Smooth:**统一设置入切线和出切线
**Flat:**入切线和出切线为水平
**Broken:**分别设置入切线和出切线
也可以选Left Tangent(入切线)或者Right Tangent(出切线)或者Both Tangents(两切线)。
**Free:**自由曲线,与Broken效果基本一样。
**Linear:**线性曲线
**Constant:**之前一直是上个点的值,然后瞬间变为这个点的值。
其中Auto最简单,Broken调整空间最大。曲线效果以绿线为准。
**Loop:**曲线循环
Pingpong: 曲线和该曲线上下翻转后的曲线循环
**Clamp:**一直为端点的值。
代码如下
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Curve : MonoBehaviour
{
public AnimationCurve animationCurve;
public Vector3 v3;
// Start is called before the first frame update
void Start()
{
v3 = transform.position;
}
// Update is called once per frame
void Update()
{
transform.position = new Vector3(Time.time+v3.x, animationCurve.Evaluate(Time.time)+v3.y, v3.z);
}
}
把脚本挂载你想要的物体上就会按照你设置的这个曲线进行运动。