0
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

自動でBootシーンに切り替える仕組みを作ると人生が楽になる 【Unity】

Last updated at Posted at 2019-11-25

ゲームを作る時に、初期化用のシーンを経由してから指定したシーンに移行し動作させることってあると思うのですが
そういう設計にすると制作中テストする度に初期化用のシーンに戻る必要が出てきて少し大変ですよね

この問題はUnityのEditor拡張を利用することで解決できます。

実装は簡単。再生時にシーンを切り替える命令を登録するだけ

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;
using UnityEngine.SceneManagement;

[InitializeOnLoad]
public static class PlayModeEditor
{
    static string m_bootSceneName ="Boot";// ←移動したいシーンの名前を記入する

    static PlayModeEditor()
    {
        EditorApplication.playModeStateChanged += ChangeBootScene;
    }
    
    static void ChangeBootScene(PlayModeStateChange state)
    {
        // 実行状態になったら
        if (state == PlayModeStateChange.EnteredPlayMode)
        {
            // 別シーンで起動していた場合切り替える
            Scene scene = SceneManager.GetActiveScene();
            if (!scene.Equals(m_bootSceneName))
            {
                SceneManager.LoadScene(m_bootSceneName);
            }
        }
    }    
}

実行時の結果

playmode.gif

この機能を利用すれば他でも応用できそうです。

0
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?