From 5e761e2379c43f3e123c8bf8ef85f46ecbb726dd Mon Sep 17 00:00:00 2001 From: sinaioutlander <49360850+sinaioutlander@users.noreply.github.com> Date: Mon, 9 Nov 2020 16:43:19 +1100 Subject: [PATCH] cleanup unstripping --- src/Console/CodeEditor.cs | 4 +- src/Console/Lexer/Matcher.cs | 2 +- src/ExplorerCore.cs | 1 + src/Helpers/Texture2DHelpers.cs | 2 +- src/Inspectors/GOInspector/ComponentList.cs | 3 +- .../GOInspector/GameObjectControls.cs | 2 +- src/Inspectors/GameObjectInspector.cs | 11 ++-- src/Inspectors/SceneExplorer.cs | 2 +- src/UI/PageModel/DebugConsole.cs | 2 +- src/UI/PageModel/OptionsPage.cs | 4 +- src/UI/PageModel/SearchPage.cs | 18 ++++--- src/UI/PanelDragger.cs | 2 +- src/UI/Shared/SliderScrollbar.cs | 50 ++++++++----------- src/UI/UIManager.cs | 2 +- src/UnityExplorer.csproj | 34 +++++-------- .../{AssetBundle => }/AssetBundleUnstrip.cs | 2 +- .../{ColorUtility => }/ColorUtilityUnstrip.cs | 2 +- .../ImageConversionUnstrip.cs | 30 +++++------ .../{LayerMask => }/LayerMaskUnstrip.cs | 4 +- src/Unstrip/Resources/ResourcesUnstrip.cs | 36 ------------- src/Unstrip/ResourcesUnstrip.cs | 26 ++++++++++ src/Unstrip/{Scene => }/SceneUnstrip.cs | 6 +-- 22 files changed, 115 insertions(+), 130 deletions(-) rename src/Unstrip/{AssetBundle => }/AssetBundleUnstrip.cs (97%) rename src/Unstrip/{ColorUtility => }/ColorUtilityUnstrip.cs (97%) rename src/Unstrip/{ImageConversion => }/ImageConversionUnstrip.cs (62%) rename src/Unstrip/{LayerMask => }/LayerMaskUnstrip.cs (75%) delete mode 100644 src/Unstrip/Resources/ResourcesUnstrip.cs create mode 100644 src/Unstrip/ResourcesUnstrip.cs rename src/Unstrip/{Scene => }/SceneUnstrip.cs (98%) diff --git a/src/Console/CodeEditor.cs b/src/Console/CodeEditor.cs index 6f06c10..ea6406c 100644 --- a/src/Console/CodeEditor.cs +++ b/src/Console/CodeEditor.cs @@ -12,7 +12,7 @@ using UnityExplorer.UI.PageModel; using System.Collections.Generic; using System.Reflection; #if CPP -using UnityExplorer.Unstrip.Resources; +using UnityExplorer.Unstrip; using UnityExplorer.Helpers; using UnhollowerRuntimeLib; #endif @@ -421,7 +421,7 @@ The following helper methods are available: private static Color caretColor = new Color32(255, 255, 255, 255); private static Color textColor = new Color32(255, 255, 255, 255); private static Color backgroundColor = new Color32(37, 37, 37, 255); - private static Color lineHighlightColor = new Color32(50, 50, 50, 255); + //private static Color lineHighlightColor = new Color32(50, 50, 50, 255); private static Color lineNumberBackgroundColor = new Color32(25, 25, 25, 255); private static Color lineNumberTextColor = new Color32(180, 180, 180, 255); private static Color scrollbarColor = new Color32(45, 50, 50, 255); diff --git a/src/Console/Lexer/Matcher.cs b/src/Console/Lexer/Matcher.cs index 3cbaaa5..1ff7f7f 100644 --- a/src/Console/Lexer/Matcher.cs +++ b/src/Console/Lexer/Matcher.cs @@ -1,5 +1,5 @@ using System.Collections.Generic; -using UnityExplorer.Unstrip.ColorUtility; +using UnityExplorer.Unstrip; using UnityEngine; namespace UnityExplorer.Console.Lexer diff --git a/src/ExplorerCore.cs b/src/ExplorerCore.cs index 3b7f04d..5ffc0d0 100644 --- a/src/ExplorerCore.cs +++ b/src/ExplorerCore.cs @@ -6,6 +6,7 @@ using UnityExplorer.UI.PageModel; using UnityEngine; using UnityExplorer.Inspectors; using System.IO; +using UnityExplorer.Unstrip; namespace UnityExplorer { diff --git a/src/Helpers/Texture2DHelpers.cs b/src/Helpers/Texture2DHelpers.cs index 0cee478..a05e9e5 100644 --- a/src/Helpers/Texture2DHelpers.cs +++ b/src/Helpers/Texture2DHelpers.cs @@ -3,7 +3,7 @@ using UnityEngine; using System.IO; using System.Reflection; #if CPP -using UnityExplorer.Unstrip.ImageConversion; +using UnityExplorer.Unstrip; #endif namespace UnityExplorer.Helpers diff --git a/src/Inspectors/GOInspector/ComponentList.cs b/src/Inspectors/GOInspector/ComponentList.cs index f35d24e..7049308 100644 --- a/src/Inspectors/GOInspector/ComponentList.cs +++ b/src/Inspectors/GOInspector/ComponentList.cs @@ -4,8 +4,7 @@ using System.Linq; using UnityExplorer.Helpers; using UnityExplorer.UI; using UnityExplorer.UI.Shared; -using UnityExplorer.Unstrip.ColorUtility; -using UnityExplorer.Unstrip.LayerMasks; +using UnityExplorer.Unstrip; using TMPro; using UnityEngine; using UnityEngine.UI; diff --git a/src/Inspectors/GOInspector/GameObjectControls.cs b/src/Inspectors/GOInspector/GameObjectControls.cs index bff4b8e..a454f8a 100644 --- a/src/Inspectors/GOInspector/GameObjectControls.cs +++ b/src/Inspectors/GOInspector/GameObjectControls.cs @@ -7,7 +7,7 @@ using TMPro; using UnityEngine; using UnityEngine.UI; using UnityExplorer.Input; -using UnityExplorer.Unstrip.Resources; +using UnityExplorer.Unstrip; namespace UnityExplorer.Inspectors.GOInspector { diff --git a/src/Inspectors/GameObjectInspector.cs b/src/Inspectors/GameObjectInspector.cs index 26aeb54..787b1a0 100644 --- a/src/Inspectors/GameObjectInspector.cs +++ b/src/Inspectors/GameObjectInspector.cs @@ -3,7 +3,7 @@ using System.Collections.Generic; using System.Linq; using UnityExplorer.Helpers; using UnityExplorer.UI; -using UnityExplorer.Unstrip.LayerMasks; +using UnityExplorer.Unstrip; using TMPro; using UnityEngine; using UnityEngine.UI; @@ -115,9 +115,7 @@ namespace UnityExplorer.Inspectors s_controls.RefreshControls(); if (GameObjectControls.s_sliderChangedWanted) - { GameObjectControls.UpdateSliderControl(); - } } private void RefreshTopInfo() @@ -139,6 +137,7 @@ namespace UnityExplorer.Inspectors m_lastPath = path; m_pathInput.text = path; m_hiddenPathText.text = path; + m_pathInput.ForceLabelUpdate(); } } else if (m_pathGroupObj.activeSelf) @@ -266,6 +265,7 @@ namespace UnityExplorer.Inspectors m_hiddenPathText = pathHiddenTextObj.GetComponent(); m_hiddenPathText.color = Color.clear; m_hiddenPathText.fontSize = 14; + m_hiddenPathText.lineSpacing = 1.5f; m_hiddenPathText.raycastTarget = false; var hiddenFitter = pathHiddenTextObj.AddComponent(); hiddenFitter.verticalFit = ContentSizeFitter.FitMode.PreferredSize; @@ -291,6 +291,11 @@ namespace UnityExplorer.Inspectors pathInputLayout.flexibleHeight = 75; pathInputLayout.preferredWidth = 400; pathInputLayout.flexibleWidth = 9999; + var textRect = m_pathInput.textComponent.GetComponent(); + textRect.offsetMin = new Vector2(3, 3); + textRect.offsetMax = new Vector2(3, 3); + m_pathInput.textComponent.color = new Color(0.75f, 0.75f, 0.75f); + m_pathInput.textComponent.lineSpacing = 1.5f; // name row diff --git a/src/Inspectors/SceneExplorer.cs b/src/Inspectors/SceneExplorer.cs index 9b03c87..bb514a5 100644 --- a/src/Inspectors/SceneExplorer.cs +++ b/src/Inspectors/SceneExplorer.cs @@ -7,7 +7,7 @@ using UnityExplorer.UI.Shared; using UnityEngine; using UnityEngine.SceneManagement; using UnityEngine.UI; -using UnityExplorer.Unstrip.Scenes; +using UnityExplorer.Unstrip; namespace UnityExplorer.Inspectors { diff --git a/src/UI/PageModel/DebugConsole.cs b/src/UI/PageModel/DebugConsole.cs index 298eb3f..343b930 100644 --- a/src/UI/PageModel/DebugConsole.cs +++ b/src/UI/PageModel/DebugConsole.cs @@ -1,6 +1,6 @@ using System; using System.Collections.Generic; -using UnityExplorer.Unstrip.ColorUtility; +using UnityExplorer.Unstrip; using TMPro; using UnityEngine; using UnityEngine.UI; diff --git a/src/UI/PageModel/OptionsPage.cs b/src/UI/PageModel/OptionsPage.cs index 55ce5fd..9e39afa 100644 --- a/src/UI/PageModel/OptionsPage.cs +++ b/src/UI/PageModel/OptionsPage.cs @@ -6,7 +6,7 @@ using UnityEngine; using UnityEngine.UI; using UnityExplorer.Config; using UnityExplorer.UI.Shared; -using UnityExplorer.Unstrip.ColorUtility; +using UnityExplorer.Unstrip; namespace UnityExplorer.UI.PageModel { @@ -169,7 +169,7 @@ namespace UnityExplorer.UI.PageModel labelLayout.minWidth = 150; labelLayout.minHeight = 25; - var toggleObj = UIFactory.CreateToggle(rowObj, out m_unlockMouseToggle, out Text toggleText); + UIFactory.CreateToggle(rowObj, out m_unlockMouseToggle, out Text toggleText); m_unlockMouseToggle.isOn = ModConfig.Instance.Force_Unlock_Mouse; toggleText.text = ""; } diff --git a/src/UI/PageModel/SearchPage.cs b/src/UI/PageModel/SearchPage.cs index 80e92e1..a80a8fb 100644 --- a/src/UI/PageModel/SearchPage.cs +++ b/src/UI/PageModel/SearchPage.cs @@ -8,7 +8,7 @@ using UnityEngine.UI; using UnityExplorer.Helpers; using UnityExplorer.Inspectors; using UnityExplorer.UI.Shared; -using UnityExplorer.Unstrip.Resources; +using UnityExplorer.Unstrip; #if CPP using UnhollowerRuntimeLib; #endif @@ -263,17 +263,17 @@ namespace UnityExplorer.UI.PageModel #endif var results = new List(); - // prefer filter comparers + // perform filter comparers string nameFilter = null; if (!string.IsNullOrEmpty(m_nameInput.text)) nameFilter = m_nameInput.text.ToLower(); - bool canFilterScene = (m_sceneFilter != SceneFilter.Any || m_childFilter != ChildFilter.Any) + bool canGetGameObject = (m_sceneFilter != SceneFilter.Any || m_childFilter != ChildFilter.Any) && (m_context == SearchContext.GameObject || typeof(Component).IsAssignableFrom(searchType)); string sceneFilter = null; - if (!canFilterScene) + if (!canGetGameObject) { if (m_context != SearchContext.UnityObject && (m_sceneFilter != SceneFilter.Any || m_childFilter != ChildFilter.Any)) ExplorerCore.LogWarning($"Type '{searchType}' cannot have Scene or Child filters applied to it"); @@ -292,7 +292,7 @@ namespace UnityExplorer.UI.PageModel if (!string.IsNullOrEmpty(nameFilter) && !obj.name.ToLower().Contains(nameFilter)) continue; - if (canFilterScene) + if (canGetGameObject) { #if MONO var go = m_context == SearchContext.GameObject @@ -304,6 +304,9 @@ namespace UnityExplorer.UI.PageModel : obj.TryCast().gameObject; #endif + if (!go) + continue; + // scene check if (m_sceneFilter != SceneFilter.Any) { @@ -484,7 +487,7 @@ namespace UnityExplorer.UI.PageModel customTypeLayout.minHeight = 25; customTypeLayout.flexibleHeight = 0; m_customTypeInput = customTypeObj.GetComponent(); - m_customTypeInput.placeholder.gameObject.GetComponent().text = "eg. UnityEngine.Camera"; + m_customTypeInput.placeholder.gameObject.GetComponent().text = "eg. UnityEngine.Texture2D, etc..."; m_customTypeInput.onFocusSelectAll = true; #if MONO m_customTypeInput.onSelect.AddListener((string val) => { OnContextButtonClicked(SearchContext.Custom); }); @@ -507,13 +510,14 @@ namespace UnityExplorer.UI.PageModel var nameLabelObj = UIFactory.CreateLabel(nameRowObj, TextAnchor.MiddleLeft); var nameLabelText = nameLabelObj.GetComponent(); - nameLabelText.text = "Search by name:"; + nameLabelText.text = "Name contains:"; var nameLabelLayout = nameLabelObj.AddComponent(); nameLabelLayout.minWidth = 125; nameLabelLayout.minHeight = 25; var nameInputObj = UIFactory.CreateTMPInput(nameRowObj, 14, 0, (int)TextAlignmentOptions.MidlineLeft); m_nameInput = nameInputObj.GetComponent(); + //m_nameInput.placeholder.gameObject.GetComponent().text = ""; var nameInputLayout = nameInputObj.AddComponent(); nameInputLayout.minWidth = 150; nameInputLayout.flexibleWidth = 5000; diff --git a/src/UI/PanelDragger.cs b/src/UI/PanelDragger.cs index 37e6353..d55c804 100644 --- a/src/UI/PanelDragger.cs +++ b/src/UI/PanelDragger.cs @@ -5,7 +5,7 @@ using UnityEngine.UI; using UnityExplorer.Input; using System.IO; #if CPP -using UnityExplorer.Unstrip.ImageConversion; +using UnityExplorer.Unstrip; #endif namespace UnityExplorer.UI diff --git a/src/UI/Shared/SliderScrollbar.cs b/src/UI/Shared/SliderScrollbar.cs index 5d3a447..7581d94 100644 --- a/src/UI/Shared/SliderScrollbar.cs +++ b/src/UI/Shared/SliderScrollbar.cs @@ -35,11 +35,6 @@ public class SliderScrollbar this.m_slider.Set(1f, false); } - ~SliderScrollbar() - { - Instances.Remove(this); - } - internal void Update() { this.RefreshVisibility(); @@ -47,39 +42,36 @@ public class SliderScrollbar internal void RefreshVisibility() { - if (this.m_slider && this.m_scrollbar) - { - bool shouldShow = !Mathf.Approximately(this.m_scrollbar.size, 1); - var obj = this.m_slider.handleRect.gameObject; - - if (obj.activeSelf != shouldShow) - { - obj.SetActive(shouldShow); - - if (shouldShow) - this.m_slider.Set(this.m_scrollbar.value, false); - else - m_slider.Set(1f, false); - } + if (!m_slider || !m_scrollbar) + { + Instances.Remove(this); + return; } - } + + bool shouldShow = !Mathf.Approximately(this.m_scrollbar.size, 1); + var obj = this.m_slider.handleRect.gameObject; + + if (obj.activeSelf != shouldShow) + { + obj.SetActive(shouldShow); + + if (shouldShow) + this.m_slider.Set(this.m_scrollbar.value, false); + else + m_slider.Set(1f, false); + } + } public void OnScrollbarValueChanged(float _value) { - //this.RefreshVisibility(); - if (this.m_slider && this.m_slider.value != _value) - { + if (this.m_slider.value != _value) this.m_slider.Set(_value, false); - } } public void OnSliderValueChanged(float _value) { - if (this.m_scrollbar) - { - this.m_scrollbar.value = _value; - } - } + this.m_scrollbar.value = _value; + } #region UI CONSTRUCTION diff --git a/src/UI/UIManager.cs b/src/UI/UIManager.cs index 278cb5a..2a4bb54 100644 --- a/src/UI/UIManager.cs +++ b/src/UI/UIManager.cs @@ -8,7 +8,7 @@ using TMPro; using System.Reflection; using UnityExplorer.Helpers; #if CPP -using UnityExplorer.Unstrip.AssetBundle; +using UnityExplorer.Unstrip; #endif namespace UnityExplorer.UI diff --git a/src/UnityExplorer.csproj b/src/UnityExplorer.csproj index 864d78d..f6f12d6 100644 --- a/src/UnityExplorer.csproj +++ b/src/UnityExplorer.csproj @@ -25,18 +25,18 @@ false UnityExplorer UnityExplorer + + D:\Steam\steamapps\common\Outward + + D:\source\Unity Projects\Test\_BUILD_MONO + + D:\source\Unity Projects\Test\_BUILD_MONO\Test_Data\Managed D:\Steam\steamapps\common\VRChat D:\source\Unity Projects\Test\_BUILD_MONO - + D:\source\Unity Projects\Test\_BUILD_MONO\Test_Data\Managed - - D:\Steam\steamapps\common\Outward_Il2Cpp - - D:\source\Unity Projects\Test\_BUILD_MONO - - D:\source\Unity Projects\Test\_BUILD_MONO\Test_Data\Managed @@ -108,10 +108,6 @@ $(MLMonoGameFolder)\MelonLoader\MelonLoader.ModHandler.dll False - $(MLMonoManagedFolder)\Unity.TextMeshPro.dll False @@ -163,10 +159,6 @@ $(BIEMonoGameFolder)\BepInEx\core\0Harmony.dll False - $(BIEMonoManagedFolder)\Unity.TextMeshPro.dll False @@ -388,13 +380,13 @@ - - - + + + - - - + + + diff --git a/src/Unstrip/AssetBundle/AssetBundleUnstrip.cs b/src/Unstrip/AssetBundleUnstrip.cs similarity index 97% rename from src/Unstrip/AssetBundle/AssetBundleUnstrip.cs rename to src/Unstrip/AssetBundleUnstrip.cs index c8d0c76..b40ed70 100644 --- a/src/Unstrip/AssetBundle/AssetBundleUnstrip.cs +++ b/src/Unstrip/AssetBundleUnstrip.cs @@ -8,7 +8,7 @@ using UnhollowerRuntimeLib; using UnityEngine; using UnityExplorer.Helpers; -namespace UnityExplorer.Unstrip.AssetBundle +namespace UnityExplorer.Unstrip { public class AssetBundle { diff --git a/src/Unstrip/ColorUtility/ColorUtilityUnstrip.cs b/src/Unstrip/ColorUtilityUnstrip.cs similarity index 97% rename from src/Unstrip/ColorUtility/ColorUtilityUnstrip.cs rename to src/Unstrip/ColorUtilityUnstrip.cs index ac798dc..d976be2 100644 --- a/src/Unstrip/ColorUtility/ColorUtilityUnstrip.cs +++ b/src/Unstrip/ColorUtilityUnstrip.cs @@ -1,7 +1,7 @@ using System.Globalization; using UnityEngine; -namespace UnityExplorer.Unstrip.ColorUtility +namespace UnityExplorer.Unstrip { public static class ColorUtilityUnstrip { diff --git a/src/Unstrip/ImageConversion/ImageConversionUnstrip.cs b/src/Unstrip/ImageConversionUnstrip.cs similarity index 62% rename from src/Unstrip/ImageConversion/ImageConversionUnstrip.cs rename to src/Unstrip/ImageConversionUnstrip.cs index 3dcaf88..a3ff378 100644 --- a/src/Unstrip/ImageConversion/ImageConversionUnstrip.cs +++ b/src/Unstrip/ImageConversionUnstrip.cs @@ -5,30 +5,34 @@ using UnityExplorer.Helpers; using UnhollowerBaseLib; using UnityEngine; -namespace UnityExplorer.Unstrip.ImageConversion +namespace UnityExplorer.Unstrip { public static class ImageConversionUnstrip { // byte[] ImageConversion.EncodeToPNG(this Texture2D image); - internal delegate byte[] d_EncodeToPNG(IntPtr tex); + internal delegate IntPtr d_EncodeToPNG(IntPtr tex); public static byte[] EncodeToPNG(this Texture2D tex) { - byte[] data = ICallHelper.GetICall("UnityEngine.ImageConversion::EncodeToPNG") + IntPtr ptr = ICallHelper.GetICall("UnityEngine.ImageConversion::EncodeToPNG") .Invoke(tex.Pointer); - // The Il2Cpp EncodeToPNG() method does return System.Byte[], - // but for some reason it is not recognized or valid. - // Simple fix is iterating into a new array manually. + return new Il2CppStructArray(ptr); - byte[] safeData = new byte[data.Length]; - for (int i = 0; i < data.Length; i++) - { - safeData[i] = (byte)data[i]; - } + //// This is a bit of a hack. The iCall actually returns an Il2CppStructArray... - return safeData; + // byte[] data = ICallHelper.GetICall("UnityEngine.ImageConversion::EncodeToPNG") + // .Invoke(tex.Pointer); + + //// However, if you try to use that result with for example File.WriteAllBytes, it won't work. + //// Simple fix: iterate into a new managed array. + + //byte[] safeData = new byte[data.Length]; + //for (int i = 0; i < data.Length; i++) + // safeData[i] = (byte)data[i]; + + //return safeData; } // bool ImageConversion.LoadImage(this Texture2D tex, byte[] data, bool markNonReadable); @@ -39,9 +43,7 @@ namespace UnityExplorer.Unstrip.ImageConversion { Il2CppStructArray il2cppArray = new Il2CppStructArray(data.Length); for (int i = 0; i < data.Length; i++) - { il2cppArray[i] = data[i]; - } bool ret = ICallHelper.GetICall("UnityEngine.ImageConversion::LoadImage") .Invoke(tex.Pointer, il2cppArray.Pointer, markNonReadable); diff --git a/src/Unstrip/LayerMask/LayerMaskUnstrip.cs b/src/Unstrip/LayerMaskUnstrip.cs similarity index 75% rename from src/Unstrip/LayerMask/LayerMaskUnstrip.cs rename to src/Unstrip/LayerMaskUnstrip.cs index fa1c14e..c0b7be5 100644 --- a/src/Unstrip/LayerMask/LayerMaskUnstrip.cs +++ b/src/Unstrip/LayerMaskUnstrip.cs @@ -5,7 +5,7 @@ using UnityEngine; using UnhollowerBaseLib; #endif -namespace UnityExplorer.Unstrip.LayerMasks +namespace UnityExplorer.Unstrip { public static class LayerMaskUnstrip { @@ -14,7 +14,7 @@ namespace UnityExplorer.Unstrip.LayerMasks public static string LayerToName(int layer) { - d_LayerToName iCall = ICallHelper.GetICall("UnityEngine.LayerMask::LayerToName"); + var iCall = ICallHelper.GetICall("UnityEngine.LayerMask::LayerToName"); return IL2CPP.Il2CppStringToManaged(iCall.Invoke(layer)); } #else diff --git a/src/Unstrip/Resources/ResourcesUnstrip.cs b/src/Unstrip/Resources/ResourcesUnstrip.cs deleted file mode 100644 index a058f64..0000000 --- a/src/Unstrip/Resources/ResourcesUnstrip.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System; -using Mono.CSharp; -using UnityExplorer.Helpers; -#if CPP -using UnhollowerBaseLib; -#endif - -namespace UnityExplorer.Unstrip.Resources -{ - public class ResourcesUnstrip - { -#if CPP - internal delegate IntPtr d_FindObjectsOfTypeAll(IntPtr type); - - public static UnityEngine.Object[] FindObjectsOfTypeAll(Il2CppSystem.Type type) - { - IntPtr arrayPtr = ICallHelper.GetICall("UnityEngine.Resources::FindObjectsOfTypeAll") - .Invoke(type.Pointer); - - Il2CppReferenceArray array = new Il2CppReferenceArray(arrayPtr); - - UnityEngine.Object[] ret = new UnityEngine.Object[array.Length]; - - for (int i = 0; i < array.Length; i++) - { - ret[i] = array[i]; - } - - return ret; - } -#else - public static UnityEngine.Object[] FindObjectsOfTypeAll(Type type) => UnityEngine.Resources.FindObjectsOfTypeAll(type); -#endif - - } -} diff --git a/src/Unstrip/ResourcesUnstrip.cs b/src/Unstrip/ResourcesUnstrip.cs new file mode 100644 index 0000000..4832e06 --- /dev/null +++ b/src/Unstrip/ResourcesUnstrip.cs @@ -0,0 +1,26 @@ +using System; +using Mono.CSharp; +using UnityExplorer.Helpers; +#if CPP +using UnhollowerBaseLib; +#endif + +namespace UnityExplorer.Unstrip +{ + public class ResourcesUnstrip + { +#if CPP + internal delegate IntPtr d_FindObjectsOfTypeAll(IntPtr type); + + public static UnityEngine.Object[] FindObjectsOfTypeAll(Il2CppSystem.Type type) + { + var iCall = ICallHelper.GetICall("UnityEngine.Resources::FindObjectsOfTypeAll"); + + return new Il2CppReferenceArray(iCall.Invoke(type.Pointer)); + } +#else + public static UnityEngine.Object[] FindObjectsOfTypeAll(Type type) => UnityEngine.Resources.FindObjectsOfTypeAll(type); +#endif + + } +} diff --git a/src/Unstrip/Scene/SceneUnstrip.cs b/src/Unstrip/SceneUnstrip.cs similarity index 98% rename from src/Unstrip/Scene/SceneUnstrip.cs rename to src/Unstrip/SceneUnstrip.cs index 508a58b..575c2f8 100644 --- a/src/Unstrip/Scene/SceneUnstrip.cs +++ b/src/Unstrip/SceneUnstrip.cs @@ -4,7 +4,7 @@ using UnityEngine; using UnityEngine.SceneManagement; using UnityExplorer.Inspectors; -namespace UnityExplorer.Unstrip.Scenes +namespace UnityExplorer.Unstrip { public class SceneUnstrip { @@ -31,11 +31,11 @@ namespace UnityExplorer.Unstrip.Scenes return new GameObject[0]; } - - //Scene.GetRootGameObjects(); #endif #if CPP + //Scene.GetRootGameObjects(); + internal delegate void d_GetRootGameObjects(int handle, IntPtr list); public static GameObject[] GetRootGameObjects(Scene scene) => GetRootGameObjects(scene.handle);