はじめに
Unity Editor上で実行する場合、いま編集しているシーンではなく最初のシーン(起動画面やタイトル画面)から再生したいことがよくあります。
Project Windowから最初のシーンを探して、シーンを開き、実行ボタンを押すでも良いですが、めんどくさいです。
今回はショートカットで一発で上記をやってしまうサンプルを作ってみました。
環境
- Unity 2021.1.16f1
サンプルコード
Tools.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;
using UnityEditor.SceneManagement;
public class Tools : EditorWindow
{
[MenuItem("Tools/Play First Scene %l")]
public static void PlayFirstScene()
{
// 既に再生中の場合は何もしない.
if (EditorApplication.isPlaying)
{
Debug.LogWarning("Editor is Playing.");
return;
}
// Build Settingsにシーンが登録されていない場合は何もしない.
if (EditorBuildSettings.scenes.Length <= 0)
{
Debug.LogWarning("Not Exist Scene.");
return;
}
// 現在のシーンが編集中の場合、保存/非保存を聞く.キャンセルの場合はなにもしない.
if (!EditorSceneManager.SaveCurrentModifiedScenesIfUserWantsTo())
{
return;
}
// 最初のシーンを開く.
EditorSceneManager.OpenScene(EditorBuildSettings.scenes[0].path);
// Unity Editorを再生させる.
EditorApplication.isPlaying = true;
}
}
使い方
上記のサンプルコードをどこでも良いのですがEditorフォルダを作ってプロジェクトに投げ込みます。
Editorフォルダに入れないとビルドした際にエラーになってしまいます。
この時に「Command + L(Windowsなら Ctrl + L)」を押すと。。。
FirstSceneに切り替わるかつ、再生中になります。
また、上のツールバーからでも実行出来ます。
さいごに
このコードを発展させれば色々なシーンへ遷移させることができます。
コメント