2014年7月14日月曜日

Unity エディタ拡張 Hierarchyに各GameObjectのTagとLayerを表示する

 UnityはEditorの拡張が容易にできるそうです。という訳で、実際にやってみました。
 以下のような内容のスクリプトをAsset/Editorディレクトリに作成します。

*** HierarchyInfoAddon.cs

using UnityEngine;
using System.Collections;
using UnityEditor;

[InitializeOnLoad]
public class HierarchyInfoAddon {

static HierarchyInfoAddon() {
EditorApplication.hierarchyWindowItemOnGUI += GUIRefresh;
}

static void GUIRefresh(int instanceID, Rect selectionRect) {
GameObject o = (GameObject)EditorUtility.InstanceIDToObject(instanceID);
if(o == null) return;
Rect r = selectionRect;
r.x += r.width - 50;
GUI.Label(r, Cut(o.tag) + "/" + Cut(LayerMask.LayerToName(o.layer))); 
}

private static string Cut(string s) {
if(s.Length >= 3) {
return s.Substring(0, 3);
} else {
return s.Substring(0, s.Length);
}
}
}

***
 
 その結果がコチラです。

 TagやLayerの指定をうっかり間違えてそのまま気付かずに悶絶することが度々あったので
 こうやって一覧で見えるようにしておけば安心です。

0 件のコメント:

コメントを投稿