Files
XCEngine/docs/api/XCEngine/Editor/Managers/ProjectManager/Initialize.md

1.3 KiB

ProjectManager::Initialize

void Initialize(const std::string& projectPath);

当前行为

Initialize(...) 会把传入路径记为 m_projectPath,然后把 <projectPath>/Assets 作为当前项目浏览根目录。

按当前实现:

  1. 计算 <project>/Assets
  2. 若不存在,则创建:
    • Assets/
    • Assets/Scenes/
  3. 调用内部 ScanDirectory(...) 递归构建根目录树
  4. 把根节点名称强制设为 "Assets"
  5. 重置 m_path 为只包含根目录的一层
  6. 清空当前选择

失败退化

若扫描或建目录过程中抛异常,当前不会把初始化直接判成失败,而是退化为:

  • 构造一个最小可用的 Folder 根节点
  • 仍把名字设为 "Assets"
  • 仍重置路径栈与当前选择

也就是说,ProjectManager 更偏向“尽量给 ProjectPanel 一个可工作的空根目录”,而不是把异常往上抛。

注意事项

  • 当前只保证 Assets/Scenes,不会自动生成旧文档里提到的一整套示例子目录。
  • 初始化后当前位置总是根目录,不会保留旧会话中的最后浏览路径。

相关文档