当你退出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);
}
我希望这对你有帮助!