unity版本:Unity2022.3.51f1c1

误区:使用animator.speed来修改

public float speed;
animator.speed=speed;

这样在运行过程中是没法动态修改速度的,会发现动画速度一直是初始速度,而且这样会对该animator controller里的所有状态生效

正确处理: 

修改 AnimatorStateInfo.speed(影响某个动画状态)

如果你只想改变特定状态的速度,可以使用  Animator.SetFloat() 结合 动画参数 实现。

public float speed;//记得赋值
animator.SetFloat("SpeedMultiplier",speed);

条件

  • 需要在 Animator 状态机 中的动画 Speed 参数绑定 SpeedMultiplier(在 Animator 里添加一个 Float 类型参数,并在 Animation 状态的 Speed 选项中选择 SpeedMultiplier)。

 

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐