[unity]ゲーム再生時、自動でシーンを保存する

UI/Image を追加したので、シーンに * (保存を促すマーク)がついています。
この状態でシーンを再生すると、保存されていない UI/Image は消えてしまいます。

再生前にシーンを保存すればいいのですが、これが地味に面倒です。
というわけで、再生前に自動でシーンを保存してくれるスクリプトを紹介します。
Unity Editor の機能です)

Editor/OnPlayState.cs

using UnityEditor;
using UnityEditor.SceneManagement;

public static class OnPlayState
{
    [InitializeOnLoadMethod]
    static void Initialize()
    {
        EditorApplication.playModeStateChanged  -= OnChangedPlayMode;
        EditorApplication.playModeStateChanged  += OnChangedPlayMode;
    }

    static void OnChangedPlayMode(PlayModeStateChange state)
    {
        if (state == PlayModeStateChange.ExitingEditMode)
        {
            // 再生前にシーンセーブ
            EditorSceneManager.SaveOpenScenes();
        }
    }
}

返信を残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA