1.7 KiB
1.7 KiB
SelectionManager
命名空间: XCEngine::Editor
类型: class (legacy singleton)
源文件: editor/src/Managers/SelectionManager.h
描述: 旧版基于 GameObject* 的单例选择管理器,当前主编辑器链路已经不再以它为核心。
概述
这个 Managers/SelectionManager.h 与当前正在使用的 Core/SelectionManager 不是同一套实现。
它的特征是:
- 单例访问
SelectionManager::Get() - 直接保存
GameObject* - 通过
OnSelectionChanged事件对象通知变化
而当前 EditorContext 真实接入的是 Core/SelectionManager,后者实现了 ISelectionManager,并以实体 ID 为核心,与 EventBus 结合得更紧。
当前状态判断
按当前仓库搜索结果,Managers/SelectionManager.h 没有出现在现行 Editor 主路径引用中。
因此更合理的理解是:它属于重构前残留实现,文档保留是为了说明历史包袱,而不是推荐新代码继续依赖。
使用建议
- 新代码应优先依赖
ISelectionManager - 默认实现应优先使用
Core/SelectionManager - 除非明确在迁移旧代码,否则不建议再引入这个单例版本
当前限制
- 直接持有
GameObject*,生命周期耦合更重 - 不符合当前
EditorContext的服务注入方向 - 事件机制与新的
EventBus + EditorEvents体系并不统一