docs: add Editor API documentation
This commit is contained in:
@@ -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)
|
||||
Reference in New Issue
Block a user