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.
This commit is contained in:
Baydock 2022-12-15 11:35:09 -06:00
parent 264c84b3ba
commit 23715d44a8
2 changed files with 13 additions and 0 deletions

View File

@ -27,6 +27,7 @@ namespace UnityExplorer.Config
public static ConfigElement<KeyCode> UI_MouseInspect_Keybind;
public static ConfigElement<string> CSConsole_Assembly_Blacklist;
public static ConfigElement<string> Reflection_Signature_Blacklist;
public static ConfigElement<bool> 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);
}
}
}

View File

@ -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;