PR

[Unity]最初のシーンから一気に再生するショートカット機能を作ってみた

Unity

はじめに

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に切り替わるかつ、再生中になります。

また、上のツールバーからでも実行出来ます。

さいごに

このコードを発展させれば色々なシーンへ遷移させることができます。

おすすめ参考書

コメント

タイトルとURLをコピーしました