更新00
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Reflection;
|
||||
using UnityEngine;
|
||||
using UnityEditor;
|
||||
using System.Runtime.CompilerServices;
|
||||
using MonoHook;
|
||||
using HybridCLR.Editor.BuildProcessors;
|
||||
using System.IO;
|
||||
|
||||
namespace HybridCLR.MonoHook
|
||||
{
|
||||
#if UNITY_2022
|
||||
[InitializeOnLoad]
|
||||
public class GetIl2CppFolderHook
|
||||
{
|
||||
private static MethodHook _hook;
|
||||
|
||||
static GetIl2CppFolderHook()
|
||||
{
|
||||
if (_hook == null)
|
||||
{
|
||||
Type type = typeof(UnityEditor.EditorApplication).Assembly.GetType("UnityEditorInternal.IL2CPPUtils");
|
||||
MethodInfo miTarget = type.GetMethod("GetIl2CppFolder", BindingFlags.Static | BindingFlags.NonPublic | BindingFlags.Public, null,
|
||||
new Type[] { typeof(bool).MakeByRefType() }, null);
|
||||
|
||||
MethodInfo miReplacement = new StripAssembliesDel(OverrideMethod).Method;
|
||||
MethodInfo miProxy = new StripAssembliesDel(PlaceHolderMethod).Method;
|
||||
|
||||
_hook = new MethodHook(miTarget, miReplacement, miProxy);
|
||||
_hook.Install();
|
||||
}
|
||||
}
|
||||
|
||||
private delegate string StripAssembliesDel(out bool isDevelopmentLocation);
|
||||
|
||||
private static string OverrideMethod(out bool isDevelopmentLocation)
|
||||
{
|
||||
//Debug.Log("[GetIl2CppFolderHook] OverrideMethod");
|
||||
string result = PlaceHolderMethod(out isDevelopmentLocation);
|
||||
isDevelopmentLocation = false;
|
||||
return result;
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.NoOptimization)]
|
||||
private static string PlaceHolderMethod(out bool isDevelopmentLocation)
|
||||
{
|
||||
Debug.LogError("[GetIl2CppFolderHook] PlaceHolderMethod");
|
||||
isDevelopmentLocation = false;
|
||||
return null;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
Reference in New Issue
Block a user