docs: add Editor API documentation

This commit is contained in:
2026-03-27 14:40:29 +08:00
parent 3e2608a802
commit 94c56dd279
87 changed files with 3795 additions and 2 deletions

View File

@@ -0,0 +1,40 @@
# ProjectManager
**命名空间**: `XCEngine::Editor`
**类型**: `class`
**源文件**: `editor/src/Managers/ProjectManager.h`
**描述**: `IProjectManager` 的默认实现,负责扫描项目 `Assets` 目录、维护面包屑路径,并支持基础文件夹与文件操作。
## 概述
`ProjectManager` 当前本质上是一个面向 `Assets` 目录的轻量文件系统浏览器。
它负责:
- 初始化项目目录结构
- 扫描目录并构建 `AssetItem`
- 维护当前路径栈
- 创建文件夹、删除项、移动项
## 当前实现说明
- `Initialize(projectPath)` 会确保 `<project>/Assets` 以及若干默认子目录存在。
- 若第一次初始化发现目录不存在,会自动创建 `Textures/Models/Scripts/Materials/Scenes` 等目录,并生成少量示例文件。
- `GetCurrentItems()` 返回当前路径末尾节点的 `children`
- 目录扫描时,文件夹会排在文件前面,并按名字排序。
- 资源类型当前按扩展名启发式推断,例如 `.png -> Texture``.fbx -> Model``.cs/.cpp/.h -> Script`
## 当前实现边界
- 目前是实时扫描树,不是文件系统监听模式。
- 异常处理大多是吞掉异常并保持当前状态,错误反馈很弱。
- 类型判断完全靠扩展名映射,不依赖资源导入数据库。
## 相关文档
- [Managers](../Managers.md)
- [IProjectManager](../../Core/IProjectManager/IProjectManager.md)
- [AssetItem](../../Core/AssetItem/AssetItem.md)