From 2b866f876c99c063f292846f6dc2a1b1af3af5da Mon Sep 17 00:00:00 2001 From: yenmoc Date: Sun, 5 May 2024 13:31:04 +0700 Subject: [PATCH 1/4] Add: tree map and row separator for hierarchy --- .../Assets/Alchemy/Editor/AlchemySettings.cs | 40 +++++ .../Hierarchy/HierarchyRowSeparatorDrawer.cs | 24 +++ .../HierarchyRowSeparatorDrawer.cs.meta | 11 ++ .../Hierarchy/HierarchyTreeMapDrawer.cs | 137 +++++++++++++++ .../Hierarchy/HierarchyTreeMapDrawer.cs.meta | 11 ++ .../Alchemy/Editor/Hierarchy/Textures.meta | 8 + .../Hierarchy/Textures/tree_map_current.png | Bin 0 -> 124 bytes .../Textures/tree_map_current.png.meta | 166 ++++++++++++++++++ .../Hierarchy/Textures/tree_map_last.png | Bin 0 -> 118 bytes .../Hierarchy/Textures/tree_map_last.png.meta | 166 ++++++++++++++++++ .../Hierarchy/Textures/tree_map_level.png | Bin 0 -> 93 bytes .../Textures/tree_map_level.png.meta | 166 ++++++++++++++++++ .../Hierarchy/Textures/tree_map_line.png | Bin 0 -> 114 bytes .../Hierarchy/Textures/tree_map_line.png.meta | 166 ++++++++++++++++++ .../Alchemy/Editor/Internal/AssetHelper.cs | 26 +++ .../Editor/Internal/AssetHelper.cs.meta | 3 + Alchemy/ProjectSettings/AlchemySettings.json | 29 ++- 17 files changed, 952 insertions(+), 1 deletion(-) create mode 100644 Alchemy/Assets/Alchemy/Editor/Hierarchy/HierarchyRowSeparatorDrawer.cs create mode 100644 Alchemy/Assets/Alchemy/Editor/Hierarchy/HierarchyRowSeparatorDrawer.cs.meta create mode 100644 Alchemy/Assets/Alchemy/Editor/Hierarchy/HierarchyTreeMapDrawer.cs create mode 100644 Alchemy/Assets/Alchemy/Editor/Hierarchy/HierarchyTreeMapDrawer.cs.meta create mode 100644 Alchemy/Assets/Alchemy/Editor/Hierarchy/Textures.meta create mode 100644 Alchemy/Assets/Alchemy/Editor/Hierarchy/Textures/tree_map_current.png create mode 100644 Alchemy/Assets/Alchemy/Editor/Hierarchy/Textures/tree_map_current.png.meta create mode 100644 Alchemy/Assets/Alchemy/Editor/Hierarchy/Textures/tree_map_last.png create mode 100644 Alchemy/Assets/Alchemy/Editor/Hierarchy/Textures/tree_map_last.png.meta create mode 100644 Alchemy/Assets/Alchemy/Editor/Hierarchy/Textures/tree_map_level.png create mode 100644 Alchemy/Assets/Alchemy/Editor/Hierarchy/Textures/tree_map_level.png.meta create mode 100644 Alchemy/Assets/Alchemy/Editor/Hierarchy/Textures/tree_map_line.png create mode 100644 Alchemy/Assets/Alchemy/Editor/Hierarchy/Textures/tree_map_line.png.meta create mode 100644 Alchemy/Assets/Alchemy/Editor/Internal/AssetHelper.cs create mode 100644 Alchemy/Assets/Alchemy/Editor/Internal/AssetHelper.cs.meta diff --git a/Alchemy/Assets/Alchemy/Editor/AlchemySettings.cs b/Alchemy/Assets/Alchemy/Editor/AlchemySettings.cs index be6bddc..e0d2f25 100644 --- a/Alchemy/Assets/Alchemy/Editor/AlchemySettings.cs +++ b/Alchemy/Assets/Alchemy/Editor/AlchemySettings.cs @@ -68,6 +68,32 @@ namespace Alchemy.Editor EditorGUILayout.PropertyField(serializedObject.FindProperty("hierarchyObjectMode")); EditorGUILayout.PropertyField(serializedObject.FindProperty("showHierarchyToggles"), new GUIContent("Show Toggles")); EditorGUILayout.PropertyField(serializedObject.FindProperty("showComponentIcons")); + var showTreeMap = serializedObject.FindProperty("showTreeMap"); + EditorGUILayout.PropertyField(showTreeMap); + if (showTreeMap.boolValue) + { + EditorGUI.indentLevel++; + EditorGUILayout.PropertyField(serializedObject.FindProperty("treeMapColor"), new GUIContent("Color")); + EditorGUI.indentLevel--; + } + + var showSeparator = serializedObject.FindProperty("showSeparator"); + EditorGUILayout.PropertyField(showSeparator, new GUIContent("Show Row Separator")); + if (showSeparator.boolValue) + { + EditorGUI.indentLevel++; + EditorGUILayout.PropertyField(serializedObject.FindProperty("separatorColor"), new GUIContent("Color")); + EditorGUI.indentLevel--; + var showRowShading = serializedObject.FindProperty("showRowShading"); + EditorGUILayout.PropertyField(showRowShading); + if (showRowShading.boolValue) + { + EditorGUI.indentLevel++; + EditorGUILayout.PropertyField(serializedObject.FindProperty("evenRowColor")); + EditorGUILayout.PropertyField(serializedObject.FindProperty("oddRowColor")); + EditorGUI.indentLevel--; + } + } if (changeCheck.changed) { @@ -84,9 +110,23 @@ namespace Alchemy.Editor [SerializeField] HierarchyObjectMode hierarchyObjectMode = HierarchyObjectMode.RemoveInBuild; [SerializeField] bool showHierarchyToggles; [SerializeField] bool showComponentIcons; + [SerializeField] bool showTreeMap = true; + [SerializeField] Color treeMapColor = new(1f, 1f, 1f, 0.22f); + [SerializeField] bool showSeparator = true; + [SerializeField] bool showRowShading = true; + [SerializeField] Color separatorColor = new(0.19f, 0.19f, 0.19f, 0f); + [SerializeField] Color evenRowColor = new(0f, 0f, 0f, 0.07f); + [SerializeField] Color oddRowColor = Color.clear; public HierarchyObjectMode HierarchyObjectMode => hierarchyObjectMode; public bool ShowHierarchyToggles => showHierarchyToggles; public bool ShowComponentIcons => showComponentIcons; + public bool ShowTreeMap => showTreeMap; + public Color TreeMapColor => treeMapColor; + public bool ShowSeparator => showSeparator; + public bool ShowRowShading => showRowShading; + public Color SeparatorColor => separatorColor; + public Color EvenRowColor => evenRowColor; + public Color OddRowColor => oddRowColor; } } \ No newline at end of file diff --git a/Alchemy/Assets/Alchemy/Editor/Hierarchy/HierarchyRowSeparatorDrawer.cs b/Alchemy/Assets/Alchemy/Editor/Hierarchy/HierarchyRowSeparatorDrawer.cs new file mode 100644 index 0000000..3ff57b9 --- /dev/null +++ b/Alchemy/Assets/Alchemy/Editor/Hierarchy/HierarchyRowSeparatorDrawer.cs @@ -0,0 +1,24 @@ +using UnityEditor; +using UnityEngine; + +namespace Alchemy.Editor +{ + public class HierarchyRowSeparatorDrawer : HierarchyDrawer + { + public override void OnGUI(int instanceID, Rect selectionRect) + { + var settings = AlchemySettings.GetOrCreateSettings(); + if (!settings.ShowSeparator) return; + var rect = new Rect {y = selectionRect.y, width = selectionRect.width + selectionRect.x, height = 1, x = 0}; + + EditorGUI.DrawRect(rect, settings.SeparatorColor); + + if (!settings.ShowRowShading) return; + selectionRect.width += selectionRect.x; + selectionRect.x = 0; + selectionRect.height -= 1; + selectionRect.y += 1; + 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/HierarchyRowSeparatorDrawer.cs.meta b/Alchemy/Assets/Alchemy/Editor/Hierarchy/HierarchyRowSeparatorDrawer.cs.meta new file mode 100644 index 0000000..508d8a4 --- /dev/null +++ b/Alchemy/Assets/Alchemy/Editor/Hierarchy/HierarchyRowSeparatorDrawer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 22beb8e8fe26ffc47853979588eaf7c7 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Alchemy/Assets/Alchemy/Editor/Hierarchy/HierarchyTreeMapDrawer.cs b/Alchemy/Assets/Alchemy/Editor/Hierarchy/HierarchyTreeMapDrawer.cs new file mode 100644 index 0000000..bdf6512 --- /dev/null +++ b/Alchemy/Assets/Alchemy/Editor/Hierarchy/HierarchyTreeMapDrawer.cs @@ -0,0 +1,137 @@ +using System.Collections.Generic; +using Alchemy.Hierarchy; +using UnityEditor; +using UnityEngine; + +namespace Alchemy.Editor +{ + public class HierarchyTreeMapDrawer : HierarchyDrawer + { + private static readonly Dictionary TextureCached = new(); + + public static Texture2D TreeMapCurrent + { + get + { + TextureCached.TryGetValue(nameof(TreeMapCurrent), out var tex); + + if (tex != null) return tex; + tex = AssetHelper.FindAssetWithPath("tree_map_current.png", "Editor/Hierarchy/Textures"); + TextureCached.Add(nameof(TreeMapCurrent), tex); + return tex; + } + } + + public static Texture2D TreeMapLast + { + get + { + TextureCached.TryGetValue(nameof(TreeMapLast), out var tex); + + if (tex != null) return tex; + tex = AssetHelper.FindAssetWithPath("tree_map_last.png", "Editor/Hierarchy/Textures"); + TextureCached.Add(nameof(TreeMapLast), tex); + return tex; + } + } + + public static Texture2D TreeMapLevel + { + get + { + TextureCached.TryGetValue(nameof(TreeMapLevel), out var tex); + + if (tex != null) return tex; + tex = AssetHelper.FindAssetWithPath("tree_map_level.png", "Editor/Hierarchy/Textures"); + TextureCached.Add(nameof(TreeMapLevel), tex); + return tex; + } + } + + public static Texture2D TreeMapLine + { + get + { + TextureCached.TryGetValue(nameof(TreeMapLine), out var tex); + + if (tex != null) return tex; + tex = AssetHelper.FindAssetWithPath("tree_map_line.png", "Editor/Hierarchy/Textures"); + TextureCached.Add(nameof(TreeMapLine), tex); + return tex; + } + } + + public override void OnGUI(int instanceID, Rect selectionRect) + { + var gameObject = EditorUtility.InstanceIDToObject(instanceID) as GameObject; + if (gameObject == null) return; + + var settings = AlchemySettings.GetOrCreateSettings(); + if (settings.ShowTreeMap) + { + selectionRect.width = 14; + selectionRect.height = 16; + + int childCount = gameObject.transform.childCount; + int level = Mathf.RoundToInt(selectionRect.x / 14f); + var t = gameObject.transform; + Transform parent = null; + + for (int i = 0, j = level - 1; j >= 0; i++, j--) + { + selectionRect.x = 14 * j; + if (i == 0) + { + if (childCount == 0) + { + GUI.color = settings.TreeMapColor; + GUI.DrawTexture(selectionRect, TreeMapLine); + } + + t = gameObject.transform; + } + else if (i == 1) + { + GUI.color = settings.TreeMapColor; + if (parent == null) + { + if (t.GetSiblingIndex() == gameObject.scene.rootCount - 1) + { + GUI.DrawTexture(selectionRect, TreeMapLast); + } + else + { + GUI.DrawTexture(selectionRect, TreeMapCurrent); + } + } + else if (t.GetSiblingIndex() == parent.childCount - 1) + { + GUI.DrawTexture(selectionRect, TreeMapLast); + } + else + { + GUI.DrawTexture(selectionRect, TreeMapCurrent); + } + + t = parent; + } + else + { + if (parent == null) + { + if (t.GetSiblingIndex() != gameObject.scene.rootCount - 1) GUI.DrawTexture(selectionRect, TreeMapLevel); + } + else if (t.GetSiblingIndex() != parent.childCount - 1) GUI.DrawTexture(selectionRect, TreeMapLevel); + + t = parent; + } + + if (t != null) parent = t.parent; + else break; + } + + GUI.color = Color.white; + } + } + } +} \ No newline at end of file diff --git a/Alchemy/Assets/Alchemy/Editor/Hierarchy/HierarchyTreeMapDrawer.cs.meta b/Alchemy/Assets/Alchemy/Editor/Hierarchy/HierarchyTreeMapDrawer.cs.meta new file mode 100644 index 0000000..ac8ceb4 --- /dev/null +++ b/Alchemy/Assets/Alchemy/Editor/Hierarchy/HierarchyTreeMapDrawer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6ced594b65fdd06438b3a7fb9a468cc6 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Alchemy/Assets/Alchemy/Editor/Hierarchy/Textures.meta b/Alchemy/Assets/Alchemy/Editor/Hierarchy/Textures.meta new file mode 100644 index 0000000..0b40795 --- /dev/null +++ b/Alchemy/Assets/Alchemy/Editor/Hierarchy/Textures.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 6456f2264a0eb3e4ab21dd7eeacaed6a +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Alchemy/Assets/Alchemy/Editor/Hierarchy/Textures/tree_map_current.png b/Alchemy/Assets/Alchemy/Editor/Hierarchy/Textures/tree_map_current.png new file mode 100644 index 0000000000000000000000000000000000000000..076d41a57a8e24389676a6619501840ee44018e2 GIT binary patch literal 124 zcmeAS@N?(olHy`uVBq!ia0vp^d_XL~!3HGNrubO_DQ8a?#}EzCpCjDG2^|3{STh6jXbBczdm$HG@{ROj~rnmut;3g9%)4i_OY-TY`aAxl1Wzg*6 V^qe6-e-_X<22WQ%mvv4FO#lQPAyxnY literal 0 HcmV?d00001 diff --git a/Alchemy/Assets/Alchemy/Editor/Hierarchy/Textures/tree_map_current.png.meta b/Alchemy/Assets/Alchemy/Editor/Hierarchy/Textures/tree_map_current.png.meta new file mode 100644 index 0000000..a2c466b --- /dev/null +++ b/Alchemy/Assets/Alchemy/Editor/Hierarchy/Textures/tree_map_current.png.meta @@ -0,0 +1,166 @@ +fileFormatVersion: 2 +guid: 6fcde88cb33bc664fbdbf06fcb9e61bf +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 32 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 32 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 1 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: iOS + maxTextureSize: 32 + resizeAlgorithm: 0 + textureFormat: 50 + textureCompression: 1 + compressionQuality: 100 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 1 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 32 + resizeAlgorithm: 0 + textureFormat: 50 + textureCompression: 1 + compressionQuality: 100 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 1 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: iPhone + maxTextureSize: 32 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Alchemy/Assets/Alchemy/Editor/Hierarchy/Textures/tree_map_last.png b/Alchemy/Assets/Alchemy/Editor/Hierarchy/Textures/tree_map_last.png new file mode 100644 index 0000000000000000000000000000000000000000..249a37a843e1cfc6e3ce41a63a10990ecdea72d9 GIT binary patch literal 118 zcmeAS@N?(olHy`uVBq!ia0vp^d_XL~!3HGNrubO_DO*n$#}EzCpCjDG2^|3{STh6jXbBczdm$HG@{ROiRb?7x5d(QUB^1>0fohICj4FA`1xYz!) Rd;~Oz!PC{xWt~$(69Am)BNhMv literal 0 HcmV?d00001 diff --git a/Alchemy/Assets/Alchemy/Editor/Hierarchy/Textures/tree_map_last.png.meta b/Alchemy/Assets/Alchemy/Editor/Hierarchy/Textures/tree_map_last.png.meta new file mode 100644 index 0000000..a31820f --- /dev/null +++ b/Alchemy/Assets/Alchemy/Editor/Hierarchy/Textures/tree_map_last.png.meta @@ -0,0 +1,166 @@ +fileFormatVersion: 2 +guid: 0a6f5ce3bc75d6246bf08e03a36ff4a6 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 32 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 32 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 1 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: iOS + maxTextureSize: 32 + resizeAlgorithm: 0 + textureFormat: 50 + textureCompression: 1 + compressionQuality: 100 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 1 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 32 + resizeAlgorithm: 0 + textureFormat: 50 + textureCompression: 1 + compressionQuality: 100 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 1 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: iPhone + maxTextureSize: 32 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Alchemy/Assets/Alchemy/Editor/Hierarchy/Textures/tree_map_level.png b/Alchemy/Assets/Alchemy/Editor/Hierarchy/Textures/tree_map_level.png new file mode 100644 index 0000000000000000000000000000000000000000..fb17572057c86950d76bf4c21f99690763dc7b16 GIT binary patch literal 93 zcmeAS@N?(olHy`uVBq!ia0vp^d_XL~!3HGNrubO_DHTr_#}EzCpCjDG2^|9qj#)F;@2N)T8O;~*E3g;OC)iZdy`njxgN@xNApNSZ? literal 0 HcmV?d00001 diff --git a/Alchemy/Assets/Alchemy/Editor/Hierarchy/Textures/tree_map_level.png.meta b/Alchemy/Assets/Alchemy/Editor/Hierarchy/Textures/tree_map_level.png.meta new file mode 100644 index 0000000..89157d0 --- /dev/null +++ b/Alchemy/Assets/Alchemy/Editor/Hierarchy/Textures/tree_map_level.png.meta @@ -0,0 +1,166 @@ +fileFormatVersion: 2 +guid: 2506c02ada3af604e85cd968b47c3d62 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 32 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 32 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 1 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: iOS + maxTextureSize: 32 + resizeAlgorithm: 0 + textureFormat: 50 + textureCompression: 1 + compressionQuality: 100 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 1 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 32 + resizeAlgorithm: 0 + textureFormat: 50 + textureCompression: 1 + compressionQuality: 100 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 1 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: iPhone + maxTextureSize: 32 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Alchemy/Assets/Alchemy/Editor/Hierarchy/Textures/tree_map_line.png b/Alchemy/Assets/Alchemy/Editor/Hierarchy/Textures/tree_map_line.png new file mode 100644 index 0000000000000000000000000000000000000000..7fddaa1dc453b2301f889c60c2d60100b19935b8 GIT binary patch literal 114 zcmeAS@N?(olHy`uVBq!ia0vp^d_XL~!3-n?z4mbcDb4_&5ZC|z{{xvovhIDqKaj;# z666=mApA+U=NXVE=IP=XQo)$KKsv#NL0~#3pTxz~Oil(7X$BpusP@@F6%3xPelF{r G5}E+weH^R+ literal 0 HcmV?d00001 diff --git a/Alchemy/Assets/Alchemy/Editor/Hierarchy/Textures/tree_map_line.png.meta b/Alchemy/Assets/Alchemy/Editor/Hierarchy/Textures/tree_map_line.png.meta new file mode 100644 index 0000000..5d3389e --- /dev/null +++ b/Alchemy/Assets/Alchemy/Editor/Hierarchy/Textures/tree_map_line.png.meta @@ -0,0 +1,166 @@ +fileFormatVersion: 2 +guid: dbde2afdf4cde684da439f40428c19c4 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 32 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 32 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 1 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: iOS + maxTextureSize: 32 + resizeAlgorithm: 0 + textureFormat: 50 + textureCompression: 1 + compressionQuality: 100 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 1 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 32 + resizeAlgorithm: 0 + textureFormat: 50 + textureCompression: 1 + compressionQuality: 100 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 1 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: iPhone + maxTextureSize: 32 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Alchemy/Assets/Alchemy/Editor/Internal/AssetHelper.cs b/Alchemy/Assets/Alchemy/Editor/Internal/AssetHelper.cs new file mode 100644 index 0000000..efc3d37 --- /dev/null +++ b/Alchemy/Assets/Alchemy/Editor/Internal/AssetHelper.cs @@ -0,0 +1,26 @@ +using System.IO; +using UnityEditor; +using UnityEngine; + +namespace Alchemy.Editor +{ + internal static class AssetHelper + { + public static T FindAssetWithPath(string nameAsset, string relativePath, bool outsideScope = false) where T : Object + { + string path = outsideScope ? $"{relativePath}/{nameAsset}" : AssetInPackagePath(relativePath, nameAsset); + var t = AssetDatabase.LoadAssetAtPath(path, typeof(T)); + if (t == null) Debug.LogError($"Couldn't load the {nameof(T)} at path :{path}"); + return t as T; + } + + private static string AssetInPackagePath(string relativePath, string nameAsset) { return GetPathInCurrentEnvironent($"{relativePath}/{nameAsset}"); } + + private static string GetPathInCurrentEnvironent(string fullRelativePath) + { + var upmPath = $"Packages/com.annulusgames.alchemy/{fullRelativePath}"; + var normalPath = $"Assets/Alchemy/{fullRelativePath}"; + return !File.Exists(Path.GetFullPath(upmPath)) ? normalPath : upmPath; + } + } +} \ No newline at end of file diff --git a/Alchemy/Assets/Alchemy/Editor/Internal/AssetHelper.cs.meta b/Alchemy/Assets/Alchemy/Editor/Internal/AssetHelper.cs.meta new file mode 100644 index 0000000..55952c6 --- /dev/null +++ b/Alchemy/Assets/Alchemy/Editor/Internal/AssetHelper.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: dd030e11e64f4eedbd42c8bc0afd5ae1 +timeCreated: 1714886762 \ No newline at end of file diff --git a/Alchemy/ProjectSettings/AlchemySettings.json b/Alchemy/ProjectSettings/AlchemySettings.json index 4a12bca..2eaa9a4 100644 --- a/Alchemy/ProjectSettings/AlchemySettings.json +++ b/Alchemy/ProjectSettings/AlchemySettings.json @@ -1,5 +1,32 @@ { "hierarchyObjectMode": 2, "showHierarchyToggles": true, - "showComponentIcons": true + "showComponentIcons": true, + "showTreeMap": true, + "treeMapColor": { + "r": 1.0, + "g": 1.0, + "b": 1.0, + "a": 0.2199999988079071 + }, + "showSeparator": true, + "showRowShading": true, + "separatorColor": { + "r": 0.1899999976158142, + "g": 0.1899999976158142, + "b": 0.1899999976158142, + "a": 0.0 + }, + "evenRowColor": { + "r": 0.0, + "g": 0.0, + "b": 0.0, + "a": 0.07000000029802323 + }, + "oddRowColor": { + "r": 0.0, + "g": 0.0, + "b": 0.0, + "a": 0.0 + } } \ No newline at end of file From 2c652e5abcc53a75990d72cc51027d03a027e359 Mon Sep 17 00:00:00 2001 From: yenmoc Date: Sun, 5 May 2024 13:47:12 +0700 Subject: [PATCH 2/4] -Fix: Add TextureCached --- .../Alchemy/Editor/Hierarchy/HierarchyTreeMapDrawer.cs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Alchemy/Assets/Alchemy/Editor/Hierarchy/HierarchyTreeMapDrawer.cs b/Alchemy/Assets/Alchemy/Editor/Hierarchy/HierarchyTreeMapDrawer.cs index bdf6512..ab89d57 100644 --- a/Alchemy/Assets/Alchemy/Editor/Hierarchy/HierarchyTreeMapDrawer.cs +++ b/Alchemy/Assets/Alchemy/Editor/Hierarchy/HierarchyTreeMapDrawer.cs @@ -17,7 +17,7 @@ namespace Alchemy.Editor if (tex != null) return tex; tex = AssetHelper.FindAssetWithPath("tree_map_current.png", "Editor/Hierarchy/Textures"); - TextureCached.Add(nameof(TreeMapCurrent), tex); + TextureCached[nameof(TreeMapCurrent)] = tex; return tex; } } @@ -30,7 +30,7 @@ namespace Alchemy.Editor if (tex != null) return tex; tex = AssetHelper.FindAssetWithPath("tree_map_last.png", "Editor/Hierarchy/Textures"); - TextureCached.Add(nameof(TreeMapLast), tex); + TextureCached[nameof(TreeMapLast)] = tex; return tex; } } @@ -43,7 +43,7 @@ namespace Alchemy.Editor if (tex != null) return tex; tex = AssetHelper.FindAssetWithPath("tree_map_level.png", "Editor/Hierarchy/Textures"); - TextureCached.Add(nameof(TreeMapLevel), tex); + TextureCached[nameof(TreeMapLevel)] = tex; return tex; } } @@ -56,7 +56,7 @@ namespace Alchemy.Editor if (tex != null) return tex; tex = AssetHelper.FindAssetWithPath("tree_map_line.png", "Editor/Hierarchy/Textures"); - TextureCached.Add(nameof(TreeMapLine), tex); + TextureCached[nameof(TreeMapLine)] = tex; return tex; } } From cc9538b748537e61477c2ebdaa9fd3ffc36b011e Mon Sep 17 00:00:00 2001 From: yenmoc Date: Thu, 20 Jun 2024 21:02:24 +0700 Subject: [PATCH 3/4] -Update: Sharpen the texture tree map, change the default color to be compatible with both light and dark themes --- .../Assets/Alchemy/Editor/AlchemySettings.cs | 2 +- .../Hierarchy/Textures/tree_map_current.png | Bin 124 -> 1568 bytes .../Hierarchy/Textures/tree_map_last.png | Bin 118 -> 1715 bytes .../Hierarchy/Textures/tree_map_level.png | Bin 93 -> 1555 bytes .../Hierarchy/Textures/tree_map_line.png | Bin 114 -> 1562 bytes Alchemy/ProjectSettings/AlchemySettings.json | 8 ++++---- 6 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Alchemy/Assets/Alchemy/Editor/AlchemySettings.cs b/Alchemy/Assets/Alchemy/Editor/AlchemySettings.cs index e0d2f25..77803ad 100644 --- a/Alchemy/Assets/Alchemy/Editor/AlchemySettings.cs +++ b/Alchemy/Assets/Alchemy/Editor/AlchemySettings.cs @@ -111,7 +111,7 @@ namespace Alchemy.Editor [SerializeField] bool showHierarchyToggles; [SerializeField] bool showComponentIcons; [SerializeField] bool showTreeMap = true; - [SerializeField] Color treeMapColor = new(1f, 1f, 1f, 0.22f); + [SerializeField] Color treeMapColor = new(0.53f, 0.53f, 0.53f, 0.45f); [SerializeField] bool showSeparator = true; [SerializeField] bool showRowShading = true; [SerializeField] Color separatorColor = new(0.19f, 0.19f, 0.19f, 0f); diff --git a/Alchemy/Assets/Alchemy/Editor/Hierarchy/Textures/tree_map_current.png b/Alchemy/Assets/Alchemy/Editor/Hierarchy/Textures/tree_map_current.png index 076d41a57a8e24389676a6619501840ee44018e2..f6902bc01c7ad428e054cc2f3c2c6bde3497d434 100644 GIT binary patch literal 1568 zcmbVMPl()97|#~A=$1u6S)_tIvKLED@{*a!%sd)*wv+AdfLWK_kzIQb-z0Blo;%4) zlWZruhjuNt;K_?nC_StfK?|bAn+JOl5u|KyrHA!YZ&L8=!7uYCOr^HkkmUXQeZTL| z`@ZkfwbkX>nUgb;B+WKf>~$Dx+4sV6_XeVV9Aeu_)$jOv*gW^gPpL>x_o6XVjFv_ zO?PkGt$Omp+vrS6fWT)7MXBElVv<_&fS15L+ty?>fF#?NyqGCOTh1D)i-;jp#fpou zfyz}?H;cte(w5jsEEy~vy5NU7Z4i&b1Od}h z8fv&j~+!g;qogY7@07C0HxsE5=;`_OZ zI9a*~Zj1u*M0DKT4VkviVzCpsZ0RDHIiGnGl6u5wBBG`cz41k@jZH>|pH~8fhctpXp@GX9wk1PwRL(t8@pNpqF;l3~G8L>BD@w&|RTRT5lxd};x5}n5mbZnw zlcm5|-us{O??xO-koKONCo9Y>cgPBl;Z}D?rL(~Dp=&r zjs?)+B4}kF-8~Y}2ET3Ci_P@r9}m8p-N!HAsa?5$`QhQlJ$v~R>(0-&Kltj>uhq|9 z`t$RXx85L|vqx8tb*G%E@Atoy&et|1<>1u*+~KRW6Wy7E>EiU^u^Uf0zCM@!a(n*T rZ=weB?duB%uYd90e-xcy{{8r)Thkxwf8G5l>*0;1Rr{N>A71$zoKxw( literal 124 zcmeAS@N?(olHy`uVBq!ia0vp^d_XL~!3HGNrubO_DQ8a?#}EzCpCjDG2^|3{STh6jXbBczdm$HG@{ROj~rnmut;3g9%)4i_OY-TY`aAxl1Wzg*6 V^qe6-e-_X<22WQ%mvv4FO#lQPAyxnY diff --git a/Alchemy/Assets/Alchemy/Editor/Hierarchy/Textures/tree_map_last.png b/Alchemy/Assets/Alchemy/Editor/Hierarchy/Textures/tree_map_last.png index 249a37a843e1cfc6e3ce41a63a10990ecdea72d9..f5b2d0e4fb001cf354a57ba72a18148b6ebb59a7 100644 GIT binary patch literal 1715 zcmbVN-HY5*6wemck1Y#=MN26fQUr@8xk+Y{$z{{d>}2f@n0475*tMW|b8}}V>?Ai$ zvYpv|8hz6T@yUnMhdvb)6#PIR`p~}lAVT|ErS;JVrT>6fPv#?TOWo2AlgZ7^@BDt} zoO{lhkJs1EEiRl`5Cmbdwd!ubyxQu--Me;O62riewyGZTk|yhgtNSV2 z++Sp(BlXF|3PiRT9ULe8-U*g`l|Yt&2^bGSO6! zOcByW%T_eAQmNJ66m_H{6={*kMt#q zN{K9Axd>rQ6Y@xO*4|5)y1_EOn^LxN5!^ggM3dlV%1F-BHs}4>L9NeR7Ij@g;_F*s z9PmMQ`hWp*NzNPzPOT!NDtz0Tjtv7>tT&K_5t=|f9)z8}gHTh}QCmmYuyM8e02E3l zAUSy~IH0)0(}+O8VMMx2P2#R3mTAOI-sdR@gLlTk{Z_NNp7KuEhZot#xn;4n(lj;O z1dkML?5^kGR-EM|rmW>U5+p|n!vO0B4SZzVvgKTa?Nr3d1;d@-R# zTRIXg>X8M~bUS?N6PeHsdJISpsnZE8d&)L8;1ai|Z6I8M`nVKaln z1S^*1=!A!I__7!#ZVIEd7k$QHEPvN>8|~rczixlCI6^PnsMr6zp8m0U%YF6}=f+Rp zzW>EPC+W#ogU|7nlYe#M@0S;@%va`b9=UX+H|NcLKe{TMuWt(SmD8h_ZXT;2?H%&^ zxAVWh_VcI5f4DmW+h4ZskC@dke&zKiV<|*lxp!^;!&}FGe6RRhX|1feUoU^~(ZBBR B8}k4F literal 118 zcmeAS@N?(olHy`uVBq!ia0vp^d_XL~!3HGNrubO_DO*n$#}EzCpCjDG2^|3{STh6jXbBczdm$HG@{ROiRb?7x5d(QUB^1>0fohICj4FA`1xYz!) Rd;~Oz!PC{xWt~$(69Am)BNhMv diff --git a/Alchemy/Assets/Alchemy/Editor/Hierarchy/Textures/tree_map_level.png b/Alchemy/Assets/Alchemy/Editor/Hierarchy/Textures/tree_map_level.png index fb17572057c86950d76bf4c21f99690763dc7b16..cd2faea2f7bf899eec90dd8fae2172bbce0df73a 100644 GIT binary patch literal 1555 zcmcIk%Wu?1826&4kDy2uMW~{ek-31t_IUP{9pRF&8^}s^h?12ET-sTCc6XGu$Ji6r ziBt*oR;ibskPrtDj{_1&s8ufqKuKX<%V)}&~#)%5aqOCGIkR<%t~2g*(T0R z8UlSU$3+`)e<uh!7K_!)Hb4%RzEv*9G2S ziaR<)tz_Ubye*s1Vv&}rM{$*6Jc7E?7oE-B(27BDi{K1ed>INU<1@wH3HCkOk#WGl zU=gq`x1zACquh=6F78?Y?`+!Sme!)htT0-Xk|M$ ze?A9o@J6#S-%79ky?uY?5&ry-N3;Lz{QKCfxJy-Vh3U1-oOSiT2bE}$h?a2Ri{7a$G`RM!KuK$!~ZM(U!)VO!@ HyC41oT}9;V literal 93 zcmeAS@N?(olHy`uVBq!ia0vp^d_XL~!3HGNrubO_DHTr_#}EzCpCjDG2^|9qj#)F;@2N)T8O;~*E3g;OC)iZdy`njxgN@xNApNSZ? diff --git a/Alchemy/Assets/Alchemy/Editor/Hierarchy/Textures/tree_map_line.png b/Alchemy/Assets/Alchemy/Editor/Hierarchy/Textures/tree_map_line.png index 7fddaa1dc453b2301f889c60c2d60100b19935b8..72b042b7b680dba7856cf891b13f02c60a1b2c48 100644 GIT binary patch literal 1562 zcmbVM&2QX96nCNqXi5(VR8<^c>ViZCw#T#1W_MK6O?N}G5)M(aQc^B-)}GxRW$kh8 zNq08_De5hM0GCpvoG15^vzn$It}oZtV60@{Yp=lnia2)@hJ*3)nN-sby_tPe+QmypHErgIXl$xY z?^Ei_&}4yZasCZr7+L7EgcOZYRlCZGKFZ%j#Daqga{_s!t<7m4MHd`(zyZ}KRRejf)-t?eKOVsD_8F*6;sRV^?GKnV9KOz z+2wNC!o(uP0ECeaBE|Yflpdcj)OhMAB3431C}U(zxvg9sEFHNJ#yM@2j>7~2v-&Ky zY!hcL4S|857 z=fRC}Kpu-u8-tizYdn?PiO(0$gPF%OZ(>?aI8!odNZFlS)at}!M2Lye2OA;^WG_9j zPk`5$;;s(2<`{Sm-iA$Rp+KGa5Ai(3cm(xiAX6%$q-#s3QGKymw97@X$h3#% zdLFGusbZ1O>or%0;Fv-L6m#Azm*$8;?2>H+1*c?`TP0>Nr(_3(l22N!IgzhPe>+Qo ziG1*a@}DIFN|1G5nkOsFEO+R#Na0oo%)GO}cq=Q|kssEhE)LK3754-V9V46OtqK--v*QtT zxCC0+{co&e&<3y6YYUD3rMowNJ$Mbjey#Go`v2=c-=ALEb9UeO?Z3g@pYOEZF)p9j zJ#zi6%AwBe~C2CiQC^+fBa|T h>aE@9XP7AX^3|^nT)6$--oIJ*t}m|CuAV-7;Q`Yj>ev7P literal 114 zcmeAS@N?(olHy`uVBq!ia0vp^d_XL~!3-n?z4mbcDb4_&5ZC|z{{xvovhIDqKaj;# z666=mApA+U=NXVE=IP=XQo)$KKsv#NL0~#3pTxz~Oil(7X$BpusP@@F6%3xPelF{r G5}E+weH^R+ diff --git a/Alchemy/ProjectSettings/AlchemySettings.json b/Alchemy/ProjectSettings/AlchemySettings.json index 2eaa9a4..c731d81 100644 --- a/Alchemy/ProjectSettings/AlchemySettings.json +++ b/Alchemy/ProjectSettings/AlchemySettings.json @@ -4,10 +4,10 @@ "showComponentIcons": true, "showTreeMap": true, "treeMapColor": { - "r": 1.0, - "g": 1.0, - "b": 1.0, - "a": 0.2199999988079071 + "r": 0.529411792755127, + "g": 0.529411792755127, + "b": 0.529411792755127, + "a": 0.45098039507865908 }, "showSeparator": true, "showRowShading": true, From 8cc5448d96657ac6db72c88feb335a4a30feed19 Mon Sep 17 00:00:00 2001 From: yenmoc Date: Thu, 20 Jun 2024 21:51:42 +0700 Subject: [PATCH 4/4] -Update: by default features will be disabled --- Alchemy/Assets/Alchemy/Editor/AlchemySettings.cs | 6 +++--- Alchemy/ProjectSettings/AlchemySettings.json | 16 ++++++++-------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/Alchemy/Assets/Alchemy/Editor/AlchemySettings.cs b/Alchemy/Assets/Alchemy/Editor/AlchemySettings.cs index 77803ad..9aecd49 100644 --- a/Alchemy/Assets/Alchemy/Editor/AlchemySettings.cs +++ b/Alchemy/Assets/Alchemy/Editor/AlchemySettings.cs @@ -110,10 +110,10 @@ namespace Alchemy.Editor [SerializeField] HierarchyObjectMode hierarchyObjectMode = HierarchyObjectMode.RemoveInBuild; [SerializeField] bool showHierarchyToggles; [SerializeField] bool showComponentIcons; - [SerializeField] bool showTreeMap = true; + [SerializeField] bool showTreeMap; [SerializeField] Color treeMapColor = new(0.53f, 0.53f, 0.53f, 0.45f); - [SerializeField] bool showSeparator = true; - [SerializeField] bool showRowShading = true; + [SerializeField] bool showSeparator; + [SerializeField] bool showRowShading; [SerializeField] Color separatorColor = new(0.19f, 0.19f, 0.19f, 0f); [SerializeField] Color evenRowColor = new(0f, 0f, 0f, 0.07f); [SerializeField] Color oddRowColor = Color.clear; diff --git a/Alchemy/ProjectSettings/AlchemySettings.json b/Alchemy/ProjectSettings/AlchemySettings.json index c731d81..d8c4c3e 100644 --- a/Alchemy/ProjectSettings/AlchemySettings.json +++ b/Alchemy/ProjectSettings/AlchemySettings.json @@ -1,16 +1,16 @@ -{ + "hierarchyObjectMode": 2, "showHierarchyToggles": true, "showComponentIcons": true, - "showTreeMap": true, + "showTreeMap": false, "treeMapColor": { - "r": 0.529411792755127, - "g": 0.529411792755127, - "b": 0.529411792755127, - "a": 0.45098039507865908 + "r": 0.5299999713897705, + "g": 0.5299999713897705, + "b": 0.5299999713897705, + "a": 0.44999998807907107 }, - "showSeparator": true, - "showRowShading": true, + "showSeparator": false, + "showRowShading": false, "separatorColor": { "r": 0.1899999976158142, "g": 0.1899999976158142,