44 lines
1.9 KiB
Markdown
44 lines
1.9 KiB
Markdown
# Scripting
|
||
|
||
**命名空间**: `XCEngine::Editor::Scripting`
|
||
|
||
**类型**: `submodule`
|
||
|
||
**描述**: 编辑器侧脚本程序集构建与脚本运行时状态子模块,负责项目 C# 程序集重建和相关状态反馈。
|
||
|
||
## 概述
|
||
|
||
`editor/src/Scripting` 当前不是游戏运行时脚本系统本身,而是 Editor 为脚本工作流补的那一层工具能力。
|
||
|
||
它主要回答两类问题:
|
||
|
||
- 当前脚本后端和程序集是否可用
|
||
- 项目 `Assets/**/*.cs` 如何重建成 `Library/ScriptAssemblies/*.dll`
|
||
|
||
## 当前链路
|
||
|
||
1. [EditorScriptAssemblyBuilder](EditorScriptAssemblyBuilder/EditorScriptAssemblyBuilder.md)
|
||
负责真正调用 `dotnet + csc.dll` 生成 `XCEngine.ScriptCore.dll` 与 `GameScripts.dll`
|
||
2. [EditorScriptAssemblyBuilderUtils](EditorScriptAssemblyBuilderUtils/EditorScriptAssemblyBuilderUtils.md)
|
||
负责收集源码、解析 SDK 版本和兜底生成空脚本占位文件
|
||
3. [EditorScriptRuntimeStatus](EditorScriptRuntimeStatus/EditorScriptRuntimeStatus.md)
|
||
负责把“后端启用、程序集是否找到、运行时是否已加载、当前提示文本”等状态传给 UI
|
||
|
||
## 真实调用关系
|
||
|
||
- `Application.cpp` 在切项目和重载脚本运行时时更新 `EditorScriptRuntimeStatus`
|
||
- `Application.cpp` 也会通过 `EditorScriptAssemblyBuilder` 触发脚本程序集重建
|
||
- `ScriptComponentEditor` 与 `ScriptComponentEditorUtils` 会读取 runtime status,决定显示 `Rebuild Scripts` / `Reload Scripts` 按钮和提示文案
|
||
|
||
## 当前实现边界
|
||
|
||
- 这组代码明显面向 Windows 桌面开发环境,依赖 `dotnet.exe` 和本机参考程序集路径。
|
||
- 它只管 Editor 侧程序集构建与状态反馈,不直接承载运行时脚本执行。
|
||
|
||
## 相关文档
|
||
|
||
- [Editor](../Editor.md)
|
||
- [Application](../Application/Application.md)
|
||
- [ScriptComponentEditor](../ComponentEditors/ScriptComponentEditor/ScriptComponentEditor.md)
|
||
- [Scripting](../../Scripting/Scripting.md)
|