private static void UpdateItem(Rect p_selectionRect, GameObject p_obj, HierarchyObjectLink p_objectLink, TextAnchor p_alignment = TextAnchor.MiddleCenter) { EditorGUI.DrawRect(p_selectionRect, p_objectLink.BoxColor); EditorGUI.LabelField(p_selectionRect, p_obj.name, new GUIStyle() { normal = new GUIStyleState() { textColor = p_objectLink.TextColor, }, alignment = p_alignment }); }
private static void HandleHierarchyWindowItemOnGui(int p_instanceId, Rect p_selectionRect) { var obj = EditorUtility.InstanceIDToObject(p_instanceId); if (obj == null) { return; } if (HierarchyData == null) { return; } var prefabType = PrefabUtility.GetCorrespondingObjectFromSource(obj); foreach (var objectLink in HierarchyData.Data) { if (PrefabUtility.GetPrefabInstanceStatus(obj) == PrefabInstanceStatus.NotAPrefab) { continue; } if (prefabType != objectLink.ObjectToColor) { if (_previousLink == null) { break; } UpdateItem(p_selectionRect, obj as GameObject, _previousLink); } else { _previousLink = objectLink; UpdateItem(p_selectionRect, obj as GameObject, objectLink); } } }