unity如何通过反射调用Editor里的代码
代码如下:
/// <summary> /// 通过反射调用Editor里的静态方法 /// </summary> /// <param name="typeName">命名空间.类名</param> /// <param name="staticMethod">静态方法名</param> public static void CallEditorMethod(string typeName, string staticMethod, object[] parameters) { #if UNITY_EDITOR // 获取编辑器程序集 Assembly editorAssembly = AppDomain.CurrentDomain.GetAssemblies() .FirstOrDefault(a => a.FullName.StartsWith("Assembly-CSharp-Editor,")); // 获取你的编辑器工具类型(需要知道完整的命名空间) System.Type toolType = editorAssembly.GetType(typeName); if (toolType != null) { // 调用静态方法 MethodInfo method = toolType.GetMethod(staticMethod, BindingFlags.Public | BindingFlags.Static); if (method != null) { method.Invoke(null, parameters); } } else { Debug.LogError($"Cann't find type:{typeName}"); } #endif }

浙公网安备 33010602011771号