75 lines
2.3 KiB
Markdown
75 lines
2.3 KiB
Markdown
# 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 源目录通常需要先执行生成或构建流程后才存在。
|