Unity 2D动画部分运行

时间:2016-07-22 14:55:28

标签: c# animation unity3d 2d

我有一个人类步行周期的2D骨骼动画 - 很好。我正在努力编写代码,应该只停止手动画,但腿不应该(在播放器输入上 - 例如在空格键上) 是否可以在某些条件下禁用动画关键帧/曲线/属性或以任何其他方式实现此目的。

1 个答案:

答案 0 :(得分:0)

动画控制器中有多个状态。让一个州有动手动画,另一个只有腿动画。通过在动画控制器中添加参数,从第一个状态转换到另一个状态。让参数成为一个bool。

Ex:从运行动画到休息动画,有一个bool stopRunning,从休息动画到运行动画,有一个bool startRunning

因此,当设置statRunning bool时,角色从静止动画转换为正在运行的动画,并且当设置stopRunning bool时,角色将被搁置。

然后在你的代码中,当按下空格键时,调用这些函数

public void StopRunning() {
        if (_PlayerAnimator.isActiveAndEnabled) {
            _PlayerAnimator.SetBool("stopRunning", true);
            _PlayerAnimator.SetBool("startRunning", false);
        }
    }

public void StartRunning() {
        if (_PlayerAnimator.isActiveAndEnabled) {
            _PlayerAnimator.SetBool("startRunning", true);
            _PlayerAnimator.SetBool("stopRunning", false);
        }
    }