# EditorExtension HybridCLR 模块手册 ## 模块概述 `HybridCLR` 模块封装热更新 DLL 构建、AOT 补充 DLL 复制、热更 DLL 复制与宏开关。核心入口为 `BuildDLLCommand`。 ## 适用场景 - 一键编译并拷贝热更新 DLL。 - 启用/关闭 `ENABLE_HYBRIDCLR`。 - 输出 `.dll.bytes` 供运行时加载。 ## 快速上手 ### 菜单 - `HybridCLR/Tools/Define Symbols/Disable HybridCLR` - `HybridCLR/Tools/Define Symbols/Enable HybridCLR` - `HybridCLR/Tools/BuildAssets And CopyTo AssemblyTextAssetPath` ### 代码 ```csharp using UnityEditor; BuildDLLCommand.Enable(); BuildDLLCommand.BuildAndCopyDlls(EditorUserBuildSettings.activeBuildTarget); ``` ## 工作流程 1. 通过 `Enable()` / `Disable()` 控制宏与 HybridCLR 设置。 2. `BuildAndCopyDlls()` 编译热更程序集。 3. `CopyAOTHotUpdateDlls()` 复制 AOT 与 HotUpdate DLL。 4. `AssetDatabase.Refresh()` 刷新资源库。 ## 可调用 API 源码:`Packages/com.alicizax.unity.editor.extension/Editor/HybridCLR/BuildDLLCommand.cs` ### 类型:`BuildDLLCommand` #### `public static string AssemblyTextAssetPath` - 作用:目标输出目录。 #### `public static void Disable()` - 作用:关闭 HybridCLR 宏与设置。 #### `public static void Enable()` - 作用:启用 HybridCLR 宏与设置。 #### `public static void BuildAndCopyDlls()` - 作用:按当前激活平台编译并复制 DLL。 #### `public static void GenerateAll()` - 作用:执行 `PrebuildCommand.GenerateAll()`。 #### `public static void BuildAndCopyDlls(BuildTarget target)` - 作用:按指定平台编译并复制 DLL。 #### `public static void CopyAOTHotUpdateDlls(BuildTarget target)` - 作用:统一复制 AOT 与 HotUpdate DLL。 #### `public static void CopyAOTAssembliesToAssetPath()` - 作用:复制 AOT 补充程序集到输出目录。 #### `public static void CopyHotUpdateAssembliesToAssetPath()` - 作用:复制 HotUpdate 程序集到输出目录。 ## 示例 ```csharp [UnityEditor.MenuItem("Tools/HybridCLR/全部生成")] public static void BuildAll() { BuildDLLCommand.GenerateAll(); BuildDLLCommand.BuildAndCopyDlls(UnityEditor.EditorUserBuildSettings.activeBuildTarget); } ``` ## 注意事项 - 依赖 HybridCLR 包和相关生成脚本完整可用。 - AOT 源目录通常需要先执行生成或构建流程后才存在。