Skip to content

管理器层(Managers)

Assets/RocPlay/Managers 中的类型实现 IRocManagerRocPlay.Core):在 IRocLifecycle 上约定 Init / Start / Stop / Dispose,并继承 IDisposable。管理器面向 UI、音频、场景、输入、数据、对象池 等与运行时编排、表现强相关的领域门面;与 IRocService 基础设施分工不同——服务偏「协议与通用能力」,管理器偏「游戏内聚合流程与 Unity 侧协作」。


与基础服务的关系

维度IRocServiceIRocManager
典型职责TCP、存储、资源字节流、消息队列、底层池算法等开面板、切场景、总线混音、键鼠封装、存档门面、GameObject 池编排等
引导顺序于管理器完成 Init / Start于服务(见 基础服务 · 与引导顺序
获取方式同为 RocCenter.Resolve<接口>()同上

主程序集内 没有「资源管理器」接口:资源加载统一走 IRocResourceService(见 Resource)。IRocAudioManagerRocUIPanelFactory 等会在运行时依赖已注册的 IRocResourceService 实现。


主程序集内置管理器索引

以下默认实现均带 [RocImplementation(typeof(接口), Priority = 0)];更高 Priority 的可替换实现见扩展或业务工程。

#接口默认实现分册
1IRocUIManagerRocUIManagerUI配置APIRocUI示例面板
2IRocAudioManagerRocAudioManager音频管理器总线与播放RocAudio 静态门面示例
3IRocSceneManagerRocSceneManager场景管理器加载与场景栈RocScene 静态门面示例
4IRocInputManagerRocInputManager输入管理器传统输入与扩展分工RocInput 静态门面示例
5IRocDataManagerRocDataManager数据管理器存取与加密边界RocData 静态门面示例
6IRocPoolManagerRocPoolManager对象池管理器注册与取还策略RocPool 静态门面与对象池服务高频场景决策示例

命名空间前缀均为 RocPlay.Managers.<子域>(如 RocPlay.Managers.UI)。


启动依赖(RocDependsOn

部分管理器在实现类型上标注 [RocDependsOn(typeof(...))],供 RocInitPlanner 在启动期把依赖类型纳入规划,避免解析顺序问题:

  • RocDataManagerIRocStorageService
  • RocPoolManagerIRocPoolService
  • RocAudioManagerIRocResourceService

其余管理器以构造注入或内部 Resolve 使用服务时,仍须保证对应服务已在容器中注册。


扩展与业务中的 IRocManager

以下 不在 Assets/RocPlay/Managers 主目录,但同样实现 IRocManager,按需引用独立 asmdef:

  • 扩展:如 IRocConfigManagerIRocActionInputManagerIRocResourceManifestManager、ECS/ComponentSystem 各 Manager 等 → 横向拓展
  • 业务插件:如 IRocChatManagerIRocRedDotManager 等 → 业务插件

插件之间不硬引用;跨模块协作优先 RocEventBus 与接口解析。


使用方式(共性)

csharp
var panel = await RocUI.OpenPanelAsync("MyPanel", RocUILayer.Normal);

详见 UI 总览API 与调用

静态门面与实例访问也都在主命名空间 RocPlay 下提供,统一模式是:

  • RocUI.ManagerInstance
  • RocAudio.ManagerInstance
  • RocScene.ManagerInstance
  • RocInput.ManagerInstance
  • RocData.ManagerInstance
  • RocPool.ManagerInstance

这类静态门面本质上仍是 RocCenter.Resolve<接口>() 的语法糖;需要扩展能力或调试时,直接取 ManagerInstance 即可。

自定义管理器:实现 IRocManager(含生命周期与 Dispose),并标注 [RocImplementation(typeof(IMyManager))]。管理器 不是 IRocPlugin,无框架统一的 OnUpdate;每帧逻辑放在插件、桥接 MonoBehaviour 或实现内部按需处理。


代码对照

  • Assets/RocPlay/Managers/
  • Assets/RocPlay/README.md 中「管理器层」清单

下一步

  • 按需阅读本分册 UI / Audio / Scene / Input / Data / Pool
  • 资源清单、版本与批量预载:IRocResourceManifestManager模块资源编排