如何在不触及 Unity (2D) 中的时间刻度的情况下在开发中期更改游戏速度?

How to change game speed in mid development without touching the Timescale in Unity (2D)?

我有一个类似于 Sand balls 的游戏,我想知道如何在不影响时间刻度的情况下加快游戏速度?一个不错且不知何故正确的方法是缩小我所有的对象,这样重力也可以“影响”下落运动。我已经测试过它并且按预期工作,除了我必须将它应用于 100 多个级别......并且会破坏一些预制件(通过边界框缩放的质量级编辑器可以工作但这是另一回事) 另一方面,我有时间刻度,但感觉这是不正确的方法,因为它也会影响动画并导致不需要的行为。

所以...你知道任何其他加快游戏速度的方法吗?

如果物体正在下落向下,您可以增加重力。或者不触及时间刻度,您可以只创建一个 public 速度倍增变量并在开始时将其设置为 1

如果你只移动球(假设来自给沙球参考),只需将球的速度变量乘以 public 速度乘数变量。当你想改变速度时,只需改变变量即可。例如:

var ballSpeed = baseBallSpeed * speedMultiplier;