1.3 KiB
1.3 KiB
ProjectManager::Initialize
void Initialize(const std::string& projectPath);
当前行为
Initialize(...) 会把传入路径记为 m_projectPath,然后把 <projectPath>/Assets 作为当前项目浏览根目录。
按当前实现:
- 计算
<project>/Assets - 若不存在,则创建:
Assets/Assets/Scenes/
- 调用内部
ScanDirectory(...)递归构建根目录树 - 把根节点名称强制设为
"Assets" - 重置
m_path为只包含根目录的一层 - 清空当前选择
失败退化
若扫描或建目录过程中抛异常,当前不会把初始化直接判成失败,而是退化为:
- 构造一个最小可用的
Folder根节点 - 仍把名字设为
"Assets" - 仍重置路径栈与当前选择
也就是说,ProjectManager 更偏向“尽量给 ProjectPanel 一个可工作的空根目录”,而不是把异常往上抛。
注意事项
- 当前只保证
Assets/Scenes,不会自动生成旧文档里提到的一整套示例子目录。 - 初始化后当前位置总是根目录,不会保留旧会话中的最后浏览路径。