【问题标题】:Unity 2D animation running partiallyUnity 2D 动画部分运行
【发布时间】:2016-07-22 14:55:28
【问题描述】:

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

【问题讨论】:

    标签: c# animation unity3d 2d


    【解决方案1】:

    在您的动画控制器中有多个状态。让一种状态有手和腿动画,另一种只有腿动画。通过在动画控制器中添加参数,从第一个状态转换到另一个状态。让参数为布尔值。

    例如:从跑步动画到休息动画,有一个布尔值stopRunning,从休息动画到跑步动画,有一个布尔值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);
            }
        }
    

    【讨论】:

    • 我是这么想的,但是状态之间的动画不会像预期的那样。
    • 相信我,他们会的。调整参数并将过渡持续时间减少到 0。您将获得活泼的动画!
    猜你喜欢
    • 2020-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-08
    • 1970-01-01
    相关资源
    最近更新 更多