主题
横向拓展
扩展(Extensions) 位于 Assets/RocPlay/Extensions/,以 独立 *.asmdef 存在:扩展程序集引用主程序集 RocPlay,反向不成立——RocPlay.asmdef 的 references 为空,主程序集内的 Services / Managers 源码不 using RocPlay.Extensions.*。能力通过 工程侧引用扩展 + [RocImplementation](若实现类已标注)或 手动 RocCenter.Register<,> / new 接入(见各专页)。
逻辑分层上与主程序集的关系见 设计理念 · 分层架构(文中 横向扩展 一节)。
接入步骤(通用)
- Unity 依赖:若扩展依赖 UPM 包(如 Addressables、Input System),先在 Package Manager 安装。
- 程序集引用:在业务或游戏的
*.asmdef的references中加入目标扩展名(与磁盘asmdef的name字段 一致)。 - 注册:带
[RocImplementation]的类型会随RocPlay.*程序集被RocImplementationFinder扫描(见 服务容器(RocCenter));未 标注者须在RegisterManagers/RegisterServices等中 手动注册,或自行包装为插件生命周期。
全部扩展(专页索引)
共 15 个程序集,完整表格见 扩展一览。
| 专页 | 程序集 | 摘要 |
|---|---|---|
| 远程包 | RemotePackage | ZIP 版本检查、下载、校验、解压(多为 new,非 IRocManager) |
| 模块资源编排 | ResourceManifest | IRocResourceManifestManager,依赖 IRocResourceService |
| Addressables | AddressablesResource | IRocResourceService Priority 100 |
| 配置中心 | Config | IRocConfigManager |
| Session | Session | IRocSessionManager,[RocImplementation] |
| 动作输入 | ActionInput | IRocActionInputManager,新 Input System |
| Task | Task | IRocTaskManager / IRocTaskQueue(API 与并发语义、注册与队列协作、示例) |
| Localization | Localization | IRocLocalizationManager(非 IRocManager) |
| Analytics | Analytics | IRocAnalyticsManager(常需手动注册) |
| RuntimeViewer | RuntimeViewer | IRocRuntimeViewer(常需手动注册) |
| AOP | AOP | 拦截器与特性,开发期横切 |
| Command | Command | IRocCommand 与执行器(执行器与命令管理器、撤销重做与边界) |
| Reactive | Reactive | IRocLinkable、RocLinkableProperty、操作符、Unity 绑定 |
| ComponentSystem | ComponentSystem | 对象型 Entity-Component(实体与组件协作、注册与生命周期) |
| ECS | ECS | 数据导向 ECS(数据与系统管线、注册与生命周期) |
规则摘要
- 编译隔离:主程序集 不 引用扩展;扩展 引用
RocPlay。 - 协作:插件与扩展之间 不 硬依赖;优先 接口 +
RocEventBus。 - 扩展之间:避免 asmdef 环依赖。
- 事实源:磁盘
*.asmdef与扩展源码。
本站相关
下一步
- 管理器层 · 基础服务
- 核心模块 · 服务容器(RocCenter)(自动发现
RocPlay.*上的[RocImplementation])