Closed1

【Unity】ゲーム終了時に何かを実行する(セーブとか…)

eisukeeisuke

ゲームを閉じるときにセーブ処理を入れたい

##やったこと
終了時に全てのリソースは解放されるためDispose内にセーブメソッドを呼ぼう!!

    public class ParameterPrefsRepository : IDisposable{
    -----------------------------------------------------------

    public void Dispose(){
    Save();
}
}

これはUnityEditorで再生し停止するとDisposeは呼ばれセーブすることが確認できた。

しかし、ビルドして右上の×ボタンを押して停止すると呼ばれなかった。

解決方法

OnApplicationQuit() や Application.quitting など、Unityが提供する特定のメソッドやイベントを使用する!

解決方法1

public class GameSaver : MonoBehaviour
{
    private void OnApplicationQuit()
    {
        // ここにセーブ処理を記述します。
        Debug.Log("Game is quitting. Saving game data...");
        // SaveGameData();  // 例えば、ゲームデータを保存するメソッド。
    }
}

解決方法2

public class GameSaver : MonoBehaviour
{
    private void Start()
    {
        Application.quitting += SaveGameData;
    }

    private void SaveGameData()
    {
        // ここにセーブ処理を記述します。
        Debug.Log("Game is quitting. Saving game data...");
        // ExecuteSave();  // 例えば、ゲームデータを保存するメソッド。
    }
}

これで呼ばれることが確認できました!!

このスクラップは2023/06/20にクローズされました