時々レイヤー表示をオフにしたのを忘れて、オブジェクトがシーンウィンドウに表示されずパニックになる。どのレイヤーがオフになっているかは、画面右上のLayersドロップダウンをクリックすれば見ることができるけど、なかなか考えがそこに辿り着けず…
そこで、ひと目で非表示にしているレイヤーが分かるエディタ拡張(Invisible Layers)を作りました。
Editorフォルダの中に、新規C#スクリプトを「InvisibleLayers」として作成、以下のコードを貼り付ければメニュー「Windows」の中にInvisible Layersが追加されます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
using UnityEngine; using UnityEditor; using System.Collections; public class InvisibleLayers : EditorWindow { int visibleLayers = 777; [MenuItem ("Window/Invisible Layers")] public static void ShowWindow() { EditorWindow.GetWindow(typeof(InvisibleLayers)); } void Update() { if (visibleLayers == Tools.visibleLayers) return; visibleLayers = Tools.visibleLayers; Repaint(); } void OnGUI() { int nofInvisibleLayer = 0; for (int i = 0; i < 32; i++) { string na = LayerMask.LayerToName(i); if (na != "") { if ((Tools.visibleLayers & (1<< i)) != (1<< i)) { EditorGUILayout.LabelField("-" + na); nofInvisibleLayer++; } } } if (nofInvisibleLayer == 0) return; EditorGUILayout.LabelField(nofInvisibleLayer + " invisible layer(s)", EditorStyles.boldLabel); } } |
– – – – – – – – – –
Unity5.1.1p4
コメントを残す
コメントを投稿するにはログインしてください。