绕过Time.timeScale

时间:2015-11-04 19:02:32

标签: unity3d

我有Time.timeScale等于0,使整个游戏暂停。有没有办法让游戏对象不受Time.time比例影响,所以在整个游戏仍然暂停时,空游戏仍然有效?

2 个答案:

答案 0 :(得分:1)

不,没有办法。 FixedUpdate functions will not be called when timeScale is set to zero,因此您无法将比例设置为零并且仍然有一个FixedUpdate处于运动状态的对象,因为您需要FixedUpdate来更新其转换。

您必须做一些事情来暂停其他对象而不暂停游戏,请查看this post

答案 1 :(得分:-1)

Time.realtimeSinceStartup不受Time.timeScale

的影响

所以基本上你可以通过

创建自己的delta
float lastRealTime = 0f;
float deltaRealTime = 0f;

public void Update()
{
    deltaRealTime = Time.realtimeSinceStartup - lastRealTime;
    lastRealTime = Time.realtimeSinceStartup;
}

http://docs.unity3d.com/ScriptReference/Time-realtimeSinceStartup.html