From 23715d44a8acd2140f80d4db99aee2d1e40a148d Mon Sep 17 00:00:00 2001 From: Baydock Date: Thu, 15 Dec 2022 11:35:09 -0600 Subject: [PATCH] Add option to hide NativeInfoPtrs NativeMethodInfoPtr and NativeFieldInfoPtr create a lot of clutter in the class inspector, so I added an option to filter them out. --- src/Config/ConfigManager.cs | 6 ++++++ src/Runtime/UERuntimeHelper.cs | 7 +++++++ 2 files changed, 13 insertions(+) diff --git a/src/Config/ConfigManager.cs b/src/Config/ConfigManager.cs index 42df799..6a3d1a1 100644 --- a/src/Config/ConfigManager.cs +++ b/src/Config/ConfigManager.cs @@ -27,6 +27,7 @@ namespace UnityExplorer.Config public static ConfigElement UI_MouseInspect_Keybind; public static ConfigElement CSConsole_Assembly_Blacklist; public static ConfigElement Reflection_Signature_Blacklist; + public static ConfigElement Reflection_Hide_NativeInfoPtrs; // internal configs internal static InternalConfigHandler InternalHandler { get; private set; } @@ -139,6 +140,11 @@ namespace UnityExplorer.Config "Seperate signatures with a semicolon ';'.\r\n" + "For example, to blacklist Camera.main, you would add 'UnityEngine.Camera.main;'", ""); + + Reflection_Hide_NativeInfoPtrs = new("Hide NativeMethodInfoPtr_s and NativeFieldInfoPtr_s", + "Use this to blacklist NativeMethodPtr_s and NativeFieldInfoPtrs_s from the class inspector, mainly to reduce clutter.\r\n" + + "For example, this will hide 'Class.NativeFieldInfoPtr_value' for the field 'Class.value'.", + false); } } } diff --git a/src/Runtime/UERuntimeHelper.cs b/src/Runtime/UERuntimeHelper.cs index 6786d42..118ec59 100644 --- a/src/Runtime/UERuntimeHelper.cs +++ b/src/Runtime/UERuntimeHelper.cs @@ -70,6 +70,13 @@ namespace UnityExplorer.Runtime public static bool IsBlacklisted(MemberInfo member) { + if (ConfigManager.Reflection_Hide_NativeInfoPtrs.Value) + { + bool isNativeInfoPtr = member.Name.StartsWith("NativeFieldInfoPtr_") || member.Name.StartsWith("NativeMethodInfoPtr_"); + if (isNativeInfoPtr) + return true; + } + if (string.IsNullOrEmpty(member.DeclaringType?.Namespace)) return false;