计算会话长度的统一时间



当你退出Unity应用程序时(即你按下播放并停止应用程序),或者当你退出独立构建时,是否有一种注册时间的方法?

使用以下简单的代码行,当我的开始按钮被按下时,我可以写到控制台,所以我想知道我是否可以在应用程序退出时做同样的事情,这样的差异将是会话的长度?

Debug.Log("Start Button pressed @ " + DateTime.Now);

在应用程序结束时,您可以节省会话时间。在启动方法中,你可以从PlayerPrefs加载它来使用它。

Like This:

void OnApplicationQuit()  
{
    DateTime time = new DateTime(); 
    time.AddSeconds(Time.realtimeSinceStartup);
    PlayerPrefs.SetString("SessionTime",time.ToBinary().ToString());
}
void Start()
{
    DateTime time = new DateTime();
    string timeString = PlayerPrefs.SetString("SessionTime","");
    if(timeString != "")
    {
        Convert.ToInt64(timeString);       
        time = DateTime.FromBinary(time);
        Debug.Log("Previous Session Time : " + time.ToString());
    }
}

您也可以通过使用System.DateTime.Now并在开始时将其存储在某个变量中来实现这一点。并通过从System.DateTime.Now中减去节省的时间来获得会话时间。希望对大家有所帮助

您可以使用Time。realtimesincestarup获取应用程序启动后的秒数。此外,当应用程序关闭时,OnApplicationQuit将被调用(在任何实现它的MonoBehaviour上)。我不完全确定它在编辑器中是否有效,但我认为它会。

void OnApplicationQuit() {
    Debug.Log(Time.realtimeSinceStartup);
}

我希望这对你有帮助!

相关内容

  • 没有找到相关文章

最新更新