簡體   English   中英

退出應用時保存游戲

[英]Save game when exiting app

我正在制作一個團結C#的游戲。 我有代碼保存本地並為游戲保存雲。 當按下游戲保存然后退出時,我按下一個按鈕退出。

但我在這里保存的游戲有問題。 當某人或玩家按下設備移動設備上的主頁按鈕時,游戲將退出並在后台運行。

如果玩家重啟設備,則在后台運行的游戲將不會保存到本地或雲端。 這就是問題。

所以在統一當主頁按鈕按下設備移動時,統一會做什么? 這是暫停應用程序/游戲或其他什么? 如果玩家按下主頁按鈕,我們可以做什么?

如果暫停應用程序/游戲,我們可以在玩家按下主頁按鈕時首先檢測到它,我們可以保存游戲嗎? (我的意思是在按下按鈕后運行代碼)

或者根據你的經驗,如果玩家按下主頁按鈕會怎么做? 這是為了讓玩家不丟失游戲數據。

請詳細說明我找到解決方案。

對於繼續比賽,任何幫助都會很棒:)

謝謝

丹尼斯

所以在統一當主頁按鈕按下設備移動時,統一會做什么?

Unity無法控制這一點。 操作系統。 您沒有提到哪個操作系統(Android或iOS),但您可以研究每個操作系統按下主頁按鈕時會發生什么。

我可以告訴你的是,該應用程序在Android上暫停了一段時間。 有時,Android會卸載資產。 這取決於許多因素,例如應用程序已暫停多長時間,打開的應用程序數量以及設備上可用的內存。

你不能依靠操作系統來處理這個問題。 你必須自己處理它。

如果暫停應用程序/游戲,我們可以在玩家按下主頁按鈕時首先檢測到它,我們可以保存游戲嗎?

是和否。

當為了做一些按下Home鍵,則不應檢測。 但是,您應該檢測游戲暫停和恢復的時間。

這就是OnApplicationPause函數的用途。 另一個類似的功能是OnApplicationFocus但是OnApplicationPause更適合這個。

按下Home按鈕時調用OnApplicationPause( bool pauseStatus )時, pauseStatus參數為true 重新打開應用程序時,pauseStatus參數為false

這是為了讓玩家不丟失游戲數據

您可以根據pauseStatus值保存加載數據。

這是做什么的:

void OnApplicationPause(bool pauseStatus)
{
    if (pauseStatus)
    {
        Debug.Log("Paused");
        //Save Player Settings
        //https://stackoverflow.com/q/40078490/3785314
    }
    else
    {
        Debug.Log("resumed");
        //Load Player Settings
        //https://stackoverflow.com/q/40078490/3785314
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM