新建一个游戏物体
创建一个Animator Controller
新建一个动画参数
双击打开,进入Animator视图,并设置参数CurveValue。
新建一个Animation State并设置动画片段
在Base Layer中右键创建新的Animation State,并设置动画片段,然后将命名为Curve的Animator Controller拖入到角色的Animator组件中的Controller属性。运行游戏,发现角色会跑出摄像机范围,难以观察,这时,可以在角色的Animator组件中,取消Apply Root Motion的勾选(取消根结点的移动),这样角色就会原地进行运动了。具体步骤如下图所示。
编辑角色动画片段
双击新建的橙色状态,进行编辑角色片段。添加Curve(命名要和Animator Controller的Parameters中新建的CurveValue参数一样),并选择相应的曲线。如下图所示。
新建一个命名为Bubble的游戏物体来测试曲线的效果。
添加脚本
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CurveController : MonoBehaviour {
public Transform bubble;
private Vector3 originalScale;
void Start() {
originalScale = bubble.localScale;
}
// Update is called once per frame
void Update() {
float curve = GetComponent<Animator>().GetFloat("CurveValue");
bubble.localScale = new Vector3(originalScale.x + curve, originalScale.y + curve, originalScale.z + curve);
}
}
通过实时获取动画片段随着时间变化而发生属性值的变化。通过得到属性值,来实现一些功能。
学习自链接