はじめに
Unity2017.2でタイルマップエディターが新しく追加されました。
タイルマップエディターは素晴らしい機能ですが、タイルマップを編集するには
- ProjectビューでGridアセットを選択
- メニューから"Window/Tile Palette"を選択してウィンドウを開く
という手順を踏む必要があって若干めんどくさいです。
そこで、Gridコンポーネントのインスペクター上から直接Tile Paletteウィンドウを開くエディター拡張を作ってみました。
環境
Unity2017.2.0f1
Windows 10
つくったもの
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();
}
}