From 7d961ce8ad2e4b760d1d9974c92f1b2466068176 Mon Sep 17 00:00:00 2001 From: Sinai <49360850+sinai-dev@users.noreply.github.com> Date: Mon, 24 Jan 2022 17:49:22 +1100 Subject: [PATCH] Cleanup and DontDestroy fixes --- src/ObjectExplorer/ObjectSearch.cs | 32 ++++++++++++++++------------ src/ObjectExplorer/SearchProvider.cs | 7 +++--- 2 files changed, 21 insertions(+), 18 deletions(-) diff --git a/src/ObjectExplorer/ObjectSearch.cs b/src/ObjectExplorer/ObjectSearch.cs index cc5255c..d1498db 100644 --- a/src/ObjectExplorer/ObjectSearch.cs +++ b/src/ObjectExplorer/ObjectSearch.cs @@ -24,9 +24,9 @@ namespace UnityExplorer.ObjectExplorer Parent = parent; } - private SearchContext m_context = SearchContext.UnityObject; - private SceneFilter m_sceneFilter = SceneFilter.Any; - private ChildFilter m_childFilter = ChildFilter.Any; + private SearchContext context = SearchContext.UnityObject; + private SceneFilter sceneFilter = SceneFilter.Any; + private ChildFilter childFilter = ChildFilter.Any; private string desiredTypeInput; private string lastCheckedTypeInput; private bool lastTypeCanHaveGO; @@ -34,7 +34,7 @@ namespace UnityExplorer.ObjectExplorer public ButtonListHandler dataHandler; private ScrollPool resultsScrollPool; - private List currentResults = new List(); + private List currentResults = new(); public TypeCompleter typeAutocompleter; @@ -54,12 +54,12 @@ namespace UnityExplorer.ObjectExplorer { cachedCellTexts.Clear(); - if (m_context == SearchContext.Singleton) + if (context == SearchContext.Singleton) currentResults = SearchProvider.SingletonSearch(nameInputField.Text); - else if (m_context == SearchContext.Class) + else if (context == SearchContext.Class) currentResults = SearchProvider.ClassSearch(nameInputField.Text); else - currentResults = SearchProvider.UnityObjectSearch(nameInputField.Text, desiredTypeInput, m_context, m_childFilter, m_sceneFilter); + currentResults = SearchProvider.UnityObjectSearch(nameInputField.Text, desiredTypeInput, childFilter, sceneFilter); dataHandler.RefreshData(); resultsScrollPool.Refresh(true); @@ -69,7 +69,7 @@ namespace UnityExplorer.ObjectExplorer public void Update() { - if (m_context == SearchContext.UnityObject && lastCheckedTypeInput != desiredTypeInput) + if (context == SearchContext.UnityObject && lastCheckedTypeInput != desiredTypeInput) { lastCheckedTypeInput = desiredTypeInput; @@ -94,18 +94,18 @@ namespace UnityExplorer.ObjectExplorer private void OnContextDropdownChanged(int value) { - m_context = (SearchContext)value; + context = (SearchContext)value; lastCheckedTypeInput = null; sceneFilterRow.SetActive(false); childFilterRow.SetActive(false); - unityObjectClassRow.SetActive(m_context == SearchContext.UnityObject); + unityObjectClassRow.SetActive(context == SearchContext.UnityObject); } - private void OnSceneFilterDropChanged(int value) => m_sceneFilter = (SceneFilter)value; + private void OnSceneFilterDropChanged(int value) => sceneFilter = (SceneFilter)value; - private void OnChildFilterDropChanged(int value) => m_childFilter = (ChildFilter)value; + private void OnChildFilterDropChanged(int value) => childFilter = (ChildFilter)value; private void OnTypeInputChanged(string val) { @@ -127,7 +127,7 @@ namespace UnityExplorer.ObjectExplorer if (!cachedCellTexts.ContainsKey(index)) { string text; - if (m_context == SearchContext.Class) + if (context == SearchContext.Class) { var type = currentResults[index] as Type; text = $"{SignatureHighlighter.Parse(type, true)} ({type.Assembly.GetName().Name})"; @@ -143,7 +143,7 @@ namespace UnityExplorer.ObjectExplorer private void OnCellClicked(int dataIndex) { - if (m_context == SearchContext.Class) + if (context == SearchContext.Class) InspectorManager.Inspect(currentResults[dataIndex] as Type); else InspectorManager.Inspect(currentResults[dataIndex]); @@ -210,7 +210,11 @@ namespace UnityExplorer.ObjectExplorer var sceneDropObj = UIFactory.CreateDropdown(sceneFilterRow, out Dropdown sceneDrop, null, 14, OnSceneFilterDropChanged); foreach (var name in Enum.GetNames(typeof(SceneFilter))) + { + if (!SceneHandler.DontDestroyExists && name == "DontDestroyOnLoad") + continue; sceneDrop.options.Add(new Dropdown.OptionData(name)); + } UIFactory.SetLayoutElement(sceneDropObj, minHeight: 25, flexibleHeight: 0, flexibleWidth: 9999); sceneFilterRow.SetActive(false); diff --git a/src/ObjectExplorer/SearchProvider.cs b/src/ObjectExplorer/SearchProvider.cs index 030f2f2..d16f8c6 100644 --- a/src/ObjectExplorer/SearchProvider.cs +++ b/src/ObjectExplorer/SearchProvider.cs @@ -42,18 +42,17 @@ namespace UnityExplorer.ObjectExplorer case SceneFilter.Any: return true; case SceneFilter.DontDestroyOnLoad: - return scene == SceneHandler.DontDestroyScene; + return scene.handle == -12; case SceneFilter.HideAndDontSave: return scene == default; case SceneFilter.ActivelyLoaded: - return scene != SceneHandler.DontDestroyScene && scene != default; + return scene.buildIndex != -1; default: return false; } } - internal static List UnityObjectSearch(string input, string customTypeInput, SearchContext context, - ChildFilter childFilter, SceneFilter sceneFilter) + internal static List UnityObjectSearch(string input, string customTypeInput, ChildFilter childFilter, SceneFilter sceneFilter) { var results = new List();