【发布时间】:2016-07-22 14:55:28
【问题描述】:
我有一个人类步行周期的 2D 骨架动画 - 这很好。我正在努力编写应该只停止手动画但腿不应该停止的代码(在玩家输入时 - 例如在空格键上) 是否可以在某些条件下禁用动画关键帧/曲线/属性或任何其他方式来实现这一点。
【问题讨论】:
我有一个人类步行周期的 2D 骨架动画 - 这很好。我正在努力编写应该只停止手动画但腿不应该停止的代码(在玩家输入时 - 例如在空格键上) 是否可以在某些条件下禁用动画关键帧/曲线/属性或任何其他方式来实现这一点。
【问题讨论】:
在您的动画控制器中有多个状态。让一种状态有手和腿动画,另一种只有腿动画。通过在动画控制器中添加参数,从第一个状态转换到另一个状态。让参数为布尔值。
例如:从跑步动画到休息动画,有一个布尔值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);
}
}
【讨论】: