Unity之动画系统的学习(二):曲线

新建一个游戏物体

Unity之动画系统的学习(二):曲线_第1张图片

创建一个Animator Controller

Unity之动画系统的学习(二):曲线_第2张图片

新建一个动画参数

双击打开,进入Animator视图,并设置参数CurveValue。
Unity之动画系统的学习(二):曲线_第3张图片

新建一个Animation State并设置动画片段

在Base Layer中右键创建新的Animation State,并设置动画片段,然后将命名为Curve的Animator Controller拖入到角色的Animator组件中的Controller属性。运行游戏,发现角色会跑出摄像机范围,难以观察,这时,可以在角色的Animator组件中,取消Apply Root Motion的勾选(取消根结点的移动),这样角色就会原地进行运动了。具体步骤如下图所示。

编辑角色动画片段

双击新建的橙色状态,进行编辑角色片段。添加Curve(命名要和Animator Controller的Parameters中新建的CurveValue参数一样),并选择相应的曲线。如下图所示。

新建一个命名为Bubble的游戏物体来测试曲线的效果。

Unity之动画系统的学习(二):曲线_第4张图片

添加脚本

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);
    }
}

通过实时获取动画片段随着时间变化而发生属性值的变化。通过得到属性值,来实现一些功能。

学习自链接

你可能感兴趣的:(Unity3D,unity,游戏开发,动画系统)