Unity - Curves 与Paramters联动使用 - 对动画文件(.fbx)的Animaion添加Curves的使用方式

Code

using UnityEngine;

public class ReadAnimCurves : MonoBehaviour
{
    public bool appliedScaleCurve;
    private Animator animator;
    // Start is called before the first frame update
    void Start()
    {
        animator = GetComponent<Animator>();
    }

    // Update is called once per frame
    void Update()
    {
        if (appliedScaleCurve)
        {
            var s = animator.GetFloat("scale");
            transform.localScale = new Vector3(s, s, s);
        }
        else
        {
            transform.localScale = Vector3.one;
        }
    }
}

给状态机添加参数:float scale = 1

Unity - Curves 与Paramters联动使用 - 对动画文件(.fbx)的Animaion添加Curves的使用方式_第1张图片

再对应的fbx动画中,对应的Animation的下方的Curves添加对scale的动画曲线值控制

Unity - Curves 与Paramters联动使用 - 对动画文件(.fbx)的Animaion添加Curves的使用方式_第2张图片

Unity - Curves 与Paramters联动使用 - 对动画文件(.fbx)的Animaion添加Curves的使用方式_第3张图片

Unity - Curves 与Paramters联动使用 - 对动画文件(.fbx)的Animaion添加Curves的使用方式_第4张图片

Runtime

正常的跑步动画,不应用scale曲线值
Unity - Curves 与Paramters联动使用 - 对动画文件(.fbx)的Animaion添加Curves的使用方式_第5张图片

应用scale曲线值来控制localScale的运行效果
Unity - Curves 与Paramters联动使用 - 对动画文件(.fbx)的Animaion添加Curves的使用方式_第6张图片

References

Unity动画中加入控制曲线

你可能感兴趣的:(C#,unity)