探索Metastack客户端交付工程
更新时间:2024-09-27
MetaStack客户端工程对应独立元宇宙的发布单元,通过配置少量流程控制代码组合必要的组件,打包后获得承载独立元宇宙的App,作为应用容器运行时加载副本场景。
1.客户端架构
-
APP/Zone:
- Logic(逻辑部分): 包括了APP的核心逻辑,涵盖了应用程序的各个方面,从用户界面到数据处理。Logic是构建APP功能和行为的引擎,确保应用的正常运行和用户体验。
- Assets(数资部分,可热更): 这一部分负责管理应用的数资,包括Assetsbundle(Addressable)以及支持热更新的Hotfix和version_config.json。通过热更机制,开发者可以动态更新应用的资源,提供更灵活和即时的更新服务,使应用能够随时适应不断变化的需求和环境。
-
客户端底座能力:
- 核心组件: 这一部分涵盖了数资管理(规范定义、下载器和加载策略)、场景加载和切换(资源和脚本引擎管理)、Native(原生接口)、消息总线机制以及交互适配。这些核心组件旨在为开发者提供构建在线和本地APP所需的通用能力,让开发过程更高效且具备更广泛的适应性。
- 服务组件: 服务组件的关键任务是连接世界服务引擎、运营后台、开放平台、云存储以及百度AI能力(包括PTA、RTC、文心一言等)。通过诸如MCKBase、云控组件、中台通信、登录服务等功能,服务组件助力开发者实现元宇宙应用后端服务的无缝对接,提供必要的基础能力,使开发者能够更专注于应用的业务逻辑。
- 业务组件: 基于核心组件和服务组件,业务组件是构建元宇宙APP核心业务逻辑的关键,帮助开发者更便捷地开发和部署元宇宙应用,确保应用的业务逻辑具备创新性和高度定制性。

2.数资结构(Assets)

| 目录 | 描述 |
|---|---|
| version_config.json | 版本配置文件,记录目录版本号,目录中每个文件路径和md5,用于目录下载和文件校验 |
| Hotfix.dll | 数资脚本 |
| 其它 | 用Addressable生成的bundle,配置文件 |
3.工程目录结构

| 目录 | 描述 |
|---|---|
| ZionClient | 客户端主工程,用于日常开发,Windows,Android,iOS打包 |
| ZionPico | Pico与主工程差异部分,覆盖ZionClient打包Pico |
| ZionQiyu | 奇遇与主工程差异部分,覆盖ZionClient打包奇遇 |
3.1.ZionClient目录结构

| 目录 | 描述 |
|---|---|
| Assets | Unity 工程,用于场景制作和调试 |
| Package | 基于Unity Package Manager 的组件库:Baidu 开头的是百度研发的组件,可以通过npm服务下载 |
3.2.ZionClient/Assets目录结构

| 目录 | 类型 | 描述 |
|---|---|---|
| AddressableAssetsData | 数资目录 | addressable(可寻址资产管理系统)本地的资源的信息文件 |
| Arts | 副本 | 主版本数资 |
| Avatar | 工具 | 内部调试Avatar效果的目录 |
| AvatarModels | 数资 | Avatar模型数资 |
| Editor | 工具插件 | 工具插件 |
| Elevator | 数资 | 热更新HybridCLR插件生成文件 |
| HybridCLRData | 热更新插件 | 大量同一角色DrawCall优化工具 |
| MCKComponents | MCK组件功能脚本 | MCK组件,功能脚本集合 |
| Plugins | 插件 | 插件 |
| Prefabs | 预制体目录 | 预制体目录 |
| Resources | 数资目录 | 数资目录 |
| Scripts | 脚本 | 脚本代码文件 |
| StandardResources | 数资目录 | 通用基础资源 |
| StreamingAssets | Unity默认文件夹 | 热更资源目录 |
| ThirdParty | sdk | 核心脚本文件 |
| UrpShader | urp shader | urp管线下shader集合 |