【Unity2017】TileMapエディターを簡単に開くエディター拡張を作ってみた

はじめに

Unity2017.2でタイルマップエディターが新しく追加されました。
タイルマップエディターは素晴らしい機能ですが、タイルマップを編集するには

  1. ProjectビューでGridアセットを選択
  2. メニューから"Window/Tile Palette"を選択してウィンドウを開く

という手順を踏む必要があって若干めんどくさいです。

そこで、Gridコンポーネントのインスペクター上から直接Tile Paletteウィンドウを開くエディター拡張を作ってみました。

環境

Unity2017.2.0f1
Windows 10

つくったもの

1.gif

Gridコンポーネントのインスペクター上からTile Paletteウィンドウを開くエディター拡張を作ってみました。

HierarchyからでもTile Paletteウィンドウを開くことができるので、わざわざProjectビュー上でGridアセットを選択する必要がありません。

これさえあれば快適にTileMapエディターが使えるかと思います。

ソースコード

プロジェクト内にEditorフォルダを作成し、以下のスクリプトを入れるとこのエディター拡張が使えるようになります。

GridInspector.cs
using UnityEngine;
using UnityEngine.Tilemaps;
using UnityEditor;

[CustomEditor(typeof(Grid))]
public class GridInspector : Editor
{
    public override void OnInspectorGUI()
    {
        if (GUILayout.Button("Open Tile Palette"))
        {
            // Tile Paletteウィンドウを開く
            EditorApplication.ExecuteMenuItem("Window/Tile Palette");

            // Gridアセットの選択
            Selection.activeObject = null; // いったん選択を外す
            EditorApplication.delayCall += () =>
            {
                Selection.activeObject = PrefabUtility.GetPrefabParent(target) ?? target; // Gridアセットを選択
            };
        }
        base.DrawDefaultInspector();
    }
}