Closed1
【Unity】ゲーム終了時に何かを実行する(セーブとか…)
ゲームを閉じるときにセーブ処理を入れたい
##やったこと
終了時に全てのリソースは解放されるため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にクローズされました