diff --git a/Alchemy/Assets/Alchemy/Editor/Hierarchy/HierarchyDrawer.cs b/Alchemy/Assets/Alchemy/Editor/Hierarchy/HierarchyDrawer.cs index c7e70c6..2309b1d 100644 --- a/Alchemy/Assets/Alchemy/Editor/Hierarchy/HierarchyDrawer.cs +++ b/Alchemy/Assets/Alchemy/Editor/Hierarchy/HierarchyDrawer.cs @@ -8,14 +8,22 @@ namespace Alchemy.Editor /// public abstract class HierarchyDrawer { +#if UNITY_6000_4_OR_NEWER + public abstract void OnGUI(EntityId instanceID, Rect selectionRect); +#else public abstract void OnGUI(int instanceID, Rect selectionRect); +#endif protected static Rect GetBackgroundRect(Rect selectionRect) { return selectionRect.AddXMax(20f); } +#if UNITY_6000_4_OR_NEWER + protected static void DrawBackground(EntityId instanceID, Rect selectionRect) +#else protected static void DrawBackground(int instanceID, Rect selectionRect) +#endif { var backgroundRect = GetBackgroundRect(selectionRect); @@ -39,4 +47,4 @@ protected static void DrawBackground(int instanceID, Rect selectionRect) EditorGUI.DrawRect(backgroundRect, backgroundColor); } } -} \ No newline at end of file +} diff --git a/Alchemy/Assets/Alchemy/Editor/Hierarchy/HierarchyDrawerInitializer.cs b/Alchemy/Assets/Alchemy/Editor/Hierarchy/HierarchyDrawerInitializer.cs index c535372..99a80b1 100644 --- a/Alchemy/Assets/Alchemy/Editor/Hierarchy/HierarchyDrawerInitializer.cs +++ b/Alchemy/Assets/Alchemy/Editor/Hierarchy/HierarchyDrawerInitializer.cs @@ -15,8 +15,12 @@ static void Init() foreach (var drawer in drawers) { +#if UNITY_6000_4_OR_NEWER + EditorApplication.hierarchyWindowItemByEntityIdOnGUI += drawer.OnGUI; +#else EditorApplication.hierarchyWindowItemOnGUI += drawer.OnGUI; +#endif } } } -} \ No newline at end of file +} diff --git a/Alchemy/Assets/Alchemy/Editor/Hierarchy/HierarchyHeaderDrawer.cs b/Alchemy/Assets/Alchemy/Editor/Hierarchy/HierarchyHeaderDrawer.cs index ca5ba37..18c26ca 100644 --- a/Alchemy/Assets/Alchemy/Editor/Hierarchy/HierarchyHeaderDrawer.cs +++ b/Alchemy/Assets/Alchemy/Editor/Hierarchy/HierarchyHeaderDrawer.cs @@ -9,7 +9,11 @@ public sealed class HierarchyHeaderDrawer : HierarchyDrawer static Color HeaderColor => EditorGUIUtility.isProSkin ? new(0.45f, 0.45f, 0.45f, 0.5f) : new(0.55f, 0.55f, 0.55f, 0.5f); static GUIStyle labelStyle; +#if UNITY_6000_4_OR_NEWER + public override void OnGUI(EntityId instanceID, Rect selectionRect) +#else public override void OnGUI(int instanceID, Rect selectionRect) +#endif { if (labelStyle == null) { @@ -20,7 +24,11 @@ public override void OnGUI(int instanceID, Rect selectionRect) }; } +#if UNITY_6000_4_OR_NEWER + var gameObject = EditorUtility.EntityIdToObject(instanceID) as GameObject; +#else var gameObject = EditorUtility.InstanceIDToObject(instanceID) as GameObject; +#endif if (gameObject == null) return; if (!gameObject.TryGetComponent(out _)) return; @@ -31,4 +39,4 @@ public override void OnGUI(int instanceID, Rect selectionRect) EditorGUI.LabelField(headerRect, gameObject.name, labelStyle); } } -} \ No newline at end of file +} diff --git a/Alchemy/Assets/Alchemy/Editor/Hierarchy/HierarchyRowSeparatorDrawer.cs b/Alchemy/Assets/Alchemy/Editor/Hierarchy/HierarchyRowSeparatorDrawer.cs index 3ff57b9..b6719b5 100644 --- a/Alchemy/Assets/Alchemy/Editor/Hierarchy/HierarchyRowSeparatorDrawer.cs +++ b/Alchemy/Assets/Alchemy/Editor/Hierarchy/HierarchyRowSeparatorDrawer.cs @@ -5,7 +5,11 @@ namespace Alchemy.Editor { public class HierarchyRowSeparatorDrawer : HierarchyDrawer { +#if UNITY_6000_4_OR_NEWER + public override void OnGUI(EntityId instanceID, Rect selectionRect) +#else public override void OnGUI(int instanceID, Rect selectionRect) +#endif { var settings = AlchemySettings.GetOrCreateSettings(); if (!settings.ShowSeparator) return; @@ -21,4 +25,4 @@ public override void OnGUI(int instanceID, Rect selectionRect) EditorGUI.DrawRect(selectionRect, Mathf.FloorToInt((selectionRect.y - 4) / 16 % 2) == 0 ? settings.EvenRowColor : settings.OddRowColor); } } -} \ No newline at end of file +} diff --git a/Alchemy/Assets/Alchemy/Editor/Hierarchy/HierarchySeparatorDrawer.cs b/Alchemy/Assets/Alchemy/Editor/Hierarchy/HierarchySeparatorDrawer.cs index 0da41af..00bf1f7 100644 --- a/Alchemy/Assets/Alchemy/Editor/Hierarchy/HierarchySeparatorDrawer.cs +++ b/Alchemy/Assets/Alchemy/Editor/Hierarchy/HierarchySeparatorDrawer.cs @@ -8,9 +8,17 @@ public sealed class HierarchySeparatorDrawer : HierarchyDrawer { static Color SeparatorColor => new(0.5f, 0.5f, 0.5f); +#if UNITY_6000_4_OR_NEWER + public override void OnGUI(EntityId instanceID, Rect selectionRect) +#else public override void OnGUI(int instanceID, Rect selectionRect) +#endif { +#if UNITY_6000_4_OR_NEWER + var gameObject = EditorUtility.EntityIdToObject(instanceID) as GameObject; +#else var gameObject = EditorUtility.InstanceIDToObject(instanceID) as GameObject; +#endif if (gameObject == null) return; if (!gameObject.TryGetComponent(out _)) return; @@ -20,4 +28,4 @@ public override void OnGUI(int instanceID, Rect selectionRect) EditorGUI.DrawRect(lineRect, SeparatorColor); } } -} \ No newline at end of file +} diff --git a/Alchemy/Assets/Alchemy/Editor/Hierarchy/HierarchyToggleDrawer.cs b/Alchemy/Assets/Alchemy/Editor/Hierarchy/HierarchyToggleDrawer.cs index 46af3d2..47ca2c7 100644 --- a/Alchemy/Assets/Alchemy/Editor/Hierarchy/HierarchyToggleDrawer.cs +++ b/Alchemy/Assets/Alchemy/Editor/Hierarchy/HierarchyToggleDrawer.cs @@ -7,9 +7,17 @@ namespace Alchemy.Editor { public sealed class HierarchyToggleDrawer : HierarchyDrawer { +#if UNITY_6000_4_OR_NEWER + public override void OnGUI(EntityId instanceID, Rect selectionRect) +#else public override void OnGUI(int instanceID, Rect selectionRect) +#endif { +#if UNITY_6000_4_OR_NEWER + var gameObject = EditorUtility.EntityIdToObject(instanceID) as GameObject; +#else var gameObject = EditorUtility.InstanceIDToObject(instanceID) as GameObject; +#endif if (gameObject == null) return; if (gameObject.TryGetComponent(out _)) return; @@ -100,4 +108,4 @@ private static bool IsNewPrefabWorkflow() } } -} \ No newline at end of file +} diff --git a/Alchemy/Assets/Alchemy/Editor/Hierarchy/HierarchyTreeMapDrawer.cs b/Alchemy/Assets/Alchemy/Editor/Hierarchy/HierarchyTreeMapDrawer.cs index 6de84b6..c285287 100644 --- a/Alchemy/Assets/Alchemy/Editor/Hierarchy/HierarchyTreeMapDrawer.cs +++ b/Alchemy/Assets/Alchemy/Editor/Hierarchy/HierarchyTreeMapDrawer.cs @@ -61,9 +61,17 @@ public static Texture2D TreeMapLine } } +#if UNITY_6000_4_OR_NEWER + public override void OnGUI(EntityId instanceID, Rect selectionRect) +#else public override void OnGUI(int instanceID, Rect selectionRect) +#endif { +#if UNITY_6000_4_OR_NEWER + var gameObject = EditorUtility.EntityIdToObject(instanceID) as GameObject; +#else var gameObject = EditorUtility.InstanceIDToObject(instanceID) as GameObject; +#endif if (gameObject == null) return; var settings = AlchemySettings.GetOrCreateSettings(); @@ -137,4 +145,4 @@ public override void OnGUI(int instanceID, Rect selectionRect) } } } -} \ No newline at end of file +} diff --git a/Alchemy/Assets/Alchemy/Editor/Internal/SerializeReferenceDropdown.cs b/Alchemy/Assets/Alchemy/Editor/Internal/SerializeReferenceDropdown.cs index 75dcaf4..d091306 100644 --- a/Alchemy/Assets/Alchemy/Editor/Internal/SerializeReferenceDropdown.cs +++ b/Alchemy/Assets/Alchemy/Editor/Internal/SerializeReferenceDropdown.cs @@ -102,7 +102,11 @@ public static void AddTo(AdvancedDropdownItem root, IEnumerable types) static AdvancedDropdownItem GetItem(AdvancedDropdownItem parent, string name) { +#if UNITY_6000_5_OR_NEWER + foreach (AdvancedDropdownItem item in parent.childList) +#else foreach (AdvancedDropdownItem item in parent.children) +#endif { if (item.name == name) return item; } @@ -150,4 +154,4 @@ static string[] GetSplittedTypePath(Type type) } } -} \ No newline at end of file +}