Unity代码中修改动画速度
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
)。