本日はUnity調査枠です。
UnityではEditorを拡張することでUnityエディタ上で使用できる様々なツールを作ることができます。
例えばHoloLensのアプリ開発で用いるMRTKをプロジェクトに導入した場合上部のワールドタブに[MixedRealityToolkit]のメニューが追加されます。
これもEditor拡張を用いて実装されています。
今回はこのようにオリジナルのメニューを追加します。
〇ワールドタブにオリジナルのメニューを追加する。
①[Project]ウィンドウの[Assets]内のどこかに[Editor]という名前のフォルダを作成します。
[Editor]という名前のフォルダはUnity内で特別な用途で使用されるフォルダになります。
Editor拡張で使用するスクリプトはこのフォルダ内に配置します。しかし、これはビルド時にコンパイルされることはありません。
②[Editor]フォルダ内に次のscriptを作成します。
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEditor; public class GameControlEditor : Editor { }
このクラスはEditorの継承クラスになります。
③スクリプトに関数を記述します。
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEditor; public class GameControlEditor : Editor { [MenuItem("GameControlMenu/GameSet")] static void GameControlMenu() { } }
この [MenuItem("GameControlMenu/GameSet")]の属性を付けることによってUnityの上部ワールドタブにメニューが追加されます。
④次にGameControlMenu()内にメニューを選択した際の処理を記述します。
今回はMRTKのscene設定を行うようにシーン内にオブジェクトを配置します。
[MenuItem("GameControlMenu/GameSet")] static void GameControlMenu() { var _cube = GameObject.CreatePrimitive(PrimitiveType.Cube); Debug.Log("Set"); }
ボタンを押すことでシーンにキューブが配置され、コンソールウィンドウにSetのメッセージが現れました。
初歩的ですがEditor拡張でオリジナルのメニューを作成することができました。