我想做一个像矩阵一样的统一机制,但不是那样,时间是绝对暂停的,除了播放器当我按下一个键,当我再次按下它时,对象的时间恢复正常。我希望刚体不会变慢。就像是《耻辱》里的弯曲时间力量我是新手,所以我不知道如何使一个独特的对象有它的正常时间和其他暂停,我只试图设置时间。timeScale为0,但显然它影响了所有对象。有人能帮帮我吗
m528fe3b1#
停止时间与Time.timeScale一样工作得很好,对于你的玩家,你可以使用Time.unscaledDeltaTime来计算它的移动(例如。例如CharacterController.Move()在Update()中),对于e也是一样。例如,附接的相机,使得其仍然跟随玩家等。.当时间被冻结(timeScale = 0)时,您需要自己处理对象的移动,因为物理系统也停止了。这对于复杂的物理模拟(如碰撞响应)可能非常困难,但对于简单的对象或角色/相机移动和简单的碰撞检查“相当”简单。对于后者,您可以使用Physics.SphereCast等创建连续碰撞检测。
Time.timeScale
Time.unscaledDeltaTime
CharacterController.Move()
Update()
wr98u20j2#
谢谢!它就像把玩家的速度乘以Time.unscaledDeltaTime,然后用时间停止时间一样简单。timeScale = 0。
2条答案
按热度按时间m528fe3b1#
停止时间与
Time.timeScale
一样工作得很好,对于你的玩家,你可以使用Time.unscaledDeltaTime
来计算它的移动(例如。例如CharacterController.Move()
在Update()
中),对于e也是一样。例如,附接的相机,使得其仍然跟随玩家等。.当时间被冻结(timeScale = 0)时,您需要自己处理对象的移动,因为物理系统也停止了。这对于复杂的物理模拟(如碰撞响应)可能非常困难,但对于简单的对象或角色/相机移动和简单的碰撞检查“相当”简单。对于后者,您可以使用Physics.SphereCast等创建连续碰撞检测。
wr98u20j2#
谢谢!它就像把玩家的速度乘以
Time.unscaledDeltaTime
,然后用时间停止时间一样简单。timeScale = 0。