我想制作一个像矩阵一样的统一机制,但相反,当我按下一个键时,时间绝对暂停,除了玩家,当我再次按下它时,对象的时间恢复正常。我希望刚体不会变慢。就像《耻辱》中的“弯曲时间”力量
我是新手,所以我不知道如何使一个唯一的对象具有正常时间而其他对象暂停,我只尝试将 Time.timeScale 设置为 0,但显然它影响了所有对象。
有人可以帮我吗?
最佳答案
使用 Time.timeScale
可以很好地停止时间。正如您所做的那样,对于您的播放器,您将使用 Time.unscaledDeltaTime
计算它的运动(例如,在 CharacterController.Move()
中使用 Update()
),例如连接的相机,以便它仍然跟随玩家等。
当时间被卡住(timeScale = 0)时,您需要自己处理对象的运动,因为物理系统也停止了。这对于复杂的物理模拟(如碰撞响应)来说可能非常困难,但对于简单的对象或角色/相机移动和简单的碰撞检查来说“相当”简单。对于后者,您可以使用 Physics.SphereCast等等来创建连续的碰撞检测。
关于c# - 当所有其他对象暂停时移动角色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76137756/