Unity - HierarchyIconDrawer 📅 2026/7/12 22:45:52 实现在Hierarchy面板里GameObject名称前绘制一个自定义Icon[InitializeOnLoad] public class HierarchyIconDrawer { private static readonly EditorApplication.HierarchyWindowItemCallback hiearchyItemCallback; static HierarchyIconDrawer() { HierarchyIconDrawer.hiearchyItemCallback new EditorApplication.HierarchyWindowItemCallback(HierarchyIconDrawer.DrawHierarchyIcon); EditorApplication.hierarchyWindowItemOnGUI (EditorApplication.HierarchyWindowItemCallback)Delegate.Combine( EditorApplication.hierarchyWindowItemOnGUI, HierarchyIconDrawer.hiearchyItemCallback); } private static void DrawHierarchyIcon(int instanceID, Rect selectionRect) { GameObject obj EditorUtility.InstanceIDToObject(instanceID) as GameObject; if (obj null) return; if (obj.transform.parent null) return; Color? col obj.transform.parent.name switch { 角色出生点 Color.white, NPC刷新点 Color.gray, _ null }; if (col null) return; Rect rect new Rect(selectionRect.x, selectionRect.y, 16, 16); GUI.DrawTexture(rect, Texture2D.whiteTexture, ScaleMode.StretchToFill, false, 0, col.Value, 16, 16); } }