元游 MetaTour 工具链内容发布教程:空间内容制作、热更新与设备分发

本文从 2026-06-02 内部培训录屏整理而来,覆盖 MetaTour 工具链的内容发布闭环:账号与环境、EasyAR Mega 建图与定位库、文旅后台空间与版本、Unity 点位内容、热更新内容包目录、资源/代码热更新上传、设备端验证和批量分发。会议口语已整理成操作文档,无关背景讨论已删除。

流程总览

MetaTour 内容发布的核心思想是:设备端只安装一次入口应用;内容团队在 Unity 中制作空间点位内容,通过 EasyAR Mega 完成定位和地图数据管理,再用 MetaTour 工具链把资源包和必要代码发布到云端。用户下次进入应用时,选择对应空间和版本即可获取新内容。

准备账号开通 EasyAR Mega 与文旅后台账号,确认地图、定位库、项目空间权限。
创建工程安装指定 Unity 版本和 Android 模块,使用 URP 模板创建项目。
导入工具导入 EasyAR 插件和 MetaTour 工具链,运行配置检查并修复红色项。
制作内容加载定位地图,放置 POI,绑定 Prefab、触发方式和路线数据。
发布验证创建版本,上传 MetaTour 热更新内容包,在模拟器/设备端选择空间版本并验证。
入口应用入口应用负责登录、选择空间和版本、下载热更新内容。内容更新后通常不需要重新安装 APK。
点位内容每个 POI 对应一个可加载内容,通常保存为 Prefab,并放入热更新资源目录。
版本策略先用开发/测试版本验证,再发布体验版;线上版建议从已验证的体验版晋升。

0. 适用场景与边界

这套流程适合需要快速落地、持续运营、频繁更新内容的空间 AR 项目,例如展厅、博物馆、园区、文旅导览、培训演示等。它把定位、账号、版本、资源更新、常见交互和设备分发沉淀为统一流程,减少每次项目从零搭建和重复安装的成本。

适合使用的情况

  • 项目需要空间定位、地图建图、POI 内容展示或导览路线。
  • 内容会多次迭代,希望设备端不反复安装 APK。
  • 内容制作人员希望通过模板和组件完成大部分配置,少写或不写代码。
  • 现场有多台设备,需要批量安装、推送账号配置和热更新资源。

需要谨慎评估的情况

  • 客户要求完全独立的应用入口、独立交互框架或高度定制的运行逻辑。
  • 项目不需要大空间定位,只是简单平面或单机展示。
  • 必须完全离线运行。当前流程主要依赖后台账号、空间和版本服务;可以先联网拉取内容,再按项目情况评估离线能力。
判断是否使用这套流程时,优先看项目是否需要“空间定位 + 内容运营 + 多设备部署”。如果只做一次性、强定制、低复用的单机应用,传统定制工程可能更直接。

术语表

EasyAR Mega负责建图、定位库、地图加载和空间定位能力。Unity 中加载的地图数据来自这里。
文旅后台 / 项目空间负责项目、空间、点位、路线、版本和账号配置。设备端登录后选择空间与版本。
定位库由一个或多个地图组成。一个场馆可按楼层、展厅或测试环境拆分不同定位库。
POI / 点位空间中的内容锚点。模型、UI、交互逻辑通常挂在 POI 对应的 Prefab 下。
PrefabUnity 中保存的可复用内容单元。点位内容建议统一保存成 Prefab 后再热更新。
资源热更新将模型、材质、Prefab 等资源构建并上传云端,设备端下载后无需重新安装应用。
Assets/AssetBundlesMetaTour 内容包默认资源根目录。点位 Prefab、Loader 和共享资源放在这个目录下即可,可直接放根目录,也可按团队习惯建立子目录。
资源子目录ContentsLoadersShared 只是可选整理方式,不是强制目录结构。
MetaTour / MetaTourHotDll官方交付时 YooAsset 包名使用 MetaTour;需要代码热更新时程序集使用 MetaTourHotDll
代码热更新用于上传扩展交互逻辑。比纯资源更新复杂,需要程序集和依赖配置。
批量部署工具现场运维工具,用于安装 APK、推送账号配置、推送缓存资源和查看设备状态。

1. 准备账号与环境

正式制作前先准备账号、Unity、Android 构建模块、Git 和插件包。缺少其中任一项,后续可能在导包、编译、热更新上传或设备安装时失败。

账号与权限

  • EasyAR Mega 账号:用于建图、定位库管理、地图加载和定位配置。
  • 文旅后台账号:用于创建项目空间、配置点位/路线、管理版本和设备端登录。
  • 项目权限:确认当前账号能访问对应地图、定位库、空间和版本。
  • 后台密钥:API Key、API Secret、App ID 等字段只在配置时使用,不要写入公开文档或截图。

本机软件

  • Unity Hub。
  • Unity 2022.3.62 或团队指定的同系列版本。
  • Unity Android Build Support 模块。
  • Git,用于拉取依赖包、代码热更新依赖或团队仓库资源。
  • EasyAR Unity 插件包、MetaTour 内容发布工具包,以及项目指定的 UPM/本地包。
Unity Hub 中选择指定 Unity 版本
00:22:20在 Unity Hub 中选择项目要求的 Unity 版本,并安装 Android 构建支持。
不要随意升级 Unity 主版本。不同 Unity 版本可能影响插件、渲染管线、HybridCLR、YooAsset、输入系统和 Android 构建结果。

2. 新建 Unity 工程

新建工程时使用 URP 模板。移动端/XR 内容更依赖 URP 的材质和性能路径,如果误用内置渲染管线,后续材质显示、模型效果或资源更新后显示可能异常。

  1. 打开 Unity Hub,选择指定 Unity 版本。
  2. 选择 URP 3D 模板创建工程。
  3. 设置工程名称和保存目录。
  4. 首次打开后等待 Unity 完成资源导入和编译。
  5. 确认 Build Settings 中目标平台为 Android,且 Android 模块可用。
Unity Hub 中选择 URP 项目模板
00:26:05新建项目时选择 URP 3D 模板,并设置项目名称与保存位置。
如果已经用错模板,后续再切 URP 会带来材质迁移和渲染设置调整。新项目建议从一开始就选 URP。

3. 导入插件并修复配置

项目创建后,需要导入 EasyAR Unity 插件和 MetaTour 内容发布工具。培训中提到插件可以通过 TGZ、本地包或后续 UPM 方式导入。多人协作项目建议固定包路径或使用团队统一包源,避免换电脑后引用丢失。

导入 EasyAR 插件

  1. 打开 Unity 的 Package Manager。
  2. 通过本地 TGZ 或团队指定方式导入 EasyAR 插件。
  3. 等待 Unity 自动编译。
  4. 如果出现输入系统切换提示,按项目规范确认。
导入 EasyAR 插件包
00:28:04导入 EasyAR 插件包。包位置变动可能导致引用丢失,团队项目建议统一管理。

导入 MetaTour 工具并运行检查

  1. 导入 MetaTour 内容发布工具包。
  2. 打开元游配置检查面板。
  3. 按提示修复品牌、构建平台、输入系统、UPM 依赖、热更新准备项等。
  4. 红色项优先处理,绿色项表示已经通过。
元游配置检查工具
00:35:32配置检查工具会列出需要处理的项目。首次工程配置建议逐项修复。

代码热更新初始化

如果项目要使用代码热更新,需要执行一次初始化/编译准备。这个步骤可能比较耗时,通常首次配置完成后,后续资源更新不必每次都执行。

只做模型、材质和 Prefab 内容时,优先走资源热更新;只有需要扩展运行逻辑、触发规则或自定义交互时,再进入代码热更新流程。

4. EasyAR 与后台配置

后台配置分两部分:EasyAR Mega 负责地图与定位库,文旅后台负责项目空间、点位、路线和版本。两边数据要能对应起来,后续 Unity 和设备端才能正确加载内容。

4.1 EasyAR Mega:建图与定位库

  1. 登录 EasyAR Mega 后台。
  2. 创建建图任务,按项目采集方式选择激光、全景相机或手机采集。
  3. 建图完成后创建定位库。
  4. 把项目需要的地图加入定位库。多楼层、多区域项目可按实际空间拆分。
  5. 记录后续 Unity 配置需要用到的应用、定位库和 API 配置信息。
EasyAR 后台中的地图任务列表
00:40:36后台可查看建图任务和地图数据,后续 Unity 会从这些地图中选择加载。
定位库详情与配置字段
00:41:35定位库详情包含 Unity 配置需要的字段。截图中的密钥和示例信息已遮挡。

4.2 文旅后台:项目空间、点位与路线

  1. 在文旅后台创建项目或空间。
  2. 根据场馆结构创建点位。点位可对应 Unity 中的 POI。
  3. 需要导览时,配置推荐路线、手动路线或路网数据。
  4. 创建版本前,先确认空间、点位、路线和定位库关系一致。
如果使用路线模式,Unity 中的 POI 名称和后台点位名称要保持一致;如果只是点位模式,可以先简化路线配置。

5. 加载地图与放置 POI

回到 Unity 后,通过 EasyAR/MetaTour 工具登录账号,选择定位库和地图。地图加载成功后,在场景中放置 POI 标记,作为内容出现的位置。

加载定位库和地图

  1. 在 Unity 中选择 EasyAR Mega 工具对象或对应菜单。
  2. 登录 EasyAR 账号。
  3. 选择当前项目要使用的定位库。
  4. 加载需要编辑的地图。一个项目可以有多个地图,但制作时只加载当前场景需要的地图。
Unity 中选择并加载 EasyAR 地图
00:44:55选择定位库和地图。常见项目通常只加载当前场景需要的一到几个地图。

放置 POI

  1. 进入 Scene 视图,找到目标位置。
  2. 使用工具快捷键或工具按钮创建 POI 标记点。
  3. 使用右键视角配合 W/A/S/DQ/E 调整观察位置。
  4. 给 POI 命名。需要和后台路线联动时,名称必须和后台点位保持一致。
  5. 放置完成后提交或上传 POI/标注数据。
Unity Scene 中放置 POI
00:46:35在地图上放置 POI。点位决定设备端定位成功后内容出现的位置。
多数“定位到了但内容不对”的问题,最终都和空间、定位库、地图、POI 名称或后台点位映射不一致有关。

6. 制作 Prefab 内容

点位内容可以是模型、UI、动画、音频、视频播放控制或自定义交互。推荐把每个点位内容保存为 Prefab,并放入 Assets/AssetBundles 或它下面的任意子目录,便于工具收集依赖、构建资源包和上传版本。

基础制作步骤

  1. 在 POI 下放置要显示的模型或 UI。
  2. 调整位置、旋转、缩放和材质。
  3. 将内容保存为 Prefab。
  4. 把 Prefab 放到热更新资源目录,保持资源引用完整。
  5. 把 Prefab 与 POI 关联,并提交 POI 数据。
Unity 中保存点位模型 Prefab
00:49:24示例使用一个立方体模型。正式项目可替换为展品、人物、UI 或互动对象。

热更新内容包的文件夹放法

视频中提到的内容包上传不是把整个 Unity 工程传上去,而是让工具从约定的资源根目录收集 Prefab 和依赖。官方 MetaTour 发布只要求保持 assetRootPath=Assets/AssetBundles,资源放到这个目录下面即可;是否再拆 ContentsLoadersShared 等子目录,由项目团队自行决定。

Assets/
  AssetBundles/
    case01.prefab
    loader_case01.prefab
    Models/
    Materials/
    Textures/
    Audio/
    OptionalSubFolder/
      case02.prefab
目录或字段 应该放什么 注意事项
Assets/AssetBundles MetaTour 热更新资源根目录。 模型、贴图、材质、音频、Prefab 等运行时资源放在这个目录或它的子目录下,避免工具扫描不到依赖。
内容 Prefab 真正要在 POI 上显示的模型、UI、动画或音视频 Prefab。 可直接放在 Assets/AssetBundles 下,也可放在其任意子目录;命名建议和后台点位、Unity POI 保持一致。
Loader / 触发 Prefab 距离触发、点击触发、入口加载器等 Loader Prefab。 同样只要求位于 Assets/AssetBundles 下;是否单独建 Loader 子目录不是强制要求。
共享资源 多个点位复用的模型、材质、贴图、音频。 可以按项目整理子目录,但不要把运行时依赖散落到 Assets/AssetBundles 外,否则构建后可能丢引用。

如果团队确实要改资源根目录,必须同步修改 MetaTour 工具面板中的资源根路径,并重新检查 Prefab 引用。不要只移动文件夹不改工具配置;这种情况最容易出现本地能运行、上传后设备端缺资源。

移动 Prefab 或共享资源后,先在 Unity 中打开 Prefab 检查 Missing Script、Missing Material、贴图丢失和引用断开,再构建热更新包。

关联空间和 POI 配置

在空间配置面板中选择文旅后台空间,填写 EasyAR 定位相关信息,并把 Unity 中的内容与后台 POI 关联。密钥、应用 ID 和示例路径不要公开。

Unity 中配置空间和定位参数
00:54:34空间配置会关联后台空间、EasyAR 定位信息和 POI 数据。截图中的敏感字段已遮挡。

何时需要重新上传 POI 数据

  • Prefab 引用的模型、材质或脚本发生变化。
  • 点位坐标、旋转、缩放发生变化。
  • POI 名称或后台点位绑定关系发生变化。
  • 从直接加载改为距离触发、点击触发或其他触发方式。

7. 体验模式与路线

培训中提到的内容体验不止一种方式。制作前先确定项目模式,可以减少后续后台、路线和交互配置返工。

点位模式定位成功后直接按 POI 加载内容,不需要路线。适合快速演示、单展厅和简单点位展示。
自动导览配置路线后,系统按规则引导用户依次体验点位,适合有完整参观路径的场馆。
手动导览用户通过菜单或 UI 选择要体验的点位,再由系统引导到对应位置。
自定义模式项目有特殊游戏规则或流程时,可通过扩展代码和组件实现,但需要进入代码热更新规范。

路线数据注意事项

  • 使用自动导览或手动导览时,后台路线、Unity POI、地图空间关系要一致。
  • 多楼层或多区域项目建议按楼层/区域管理地图和路线。
  • 如果没有配置路线,设备端可能只能完成定位和点位内容加载,无法进行导航引导。
快速演示建议从点位模式开始,先跑通“定位成功后加载内容”。确认稳定后,再增加路线和导览逻辑。

8. MetaTour 内容发布与热更新包上传

内容制作完成后,在文旅后台空间下创建或选择版本,再通过 MetaTour 工具链构建并上传热更新内容包。设备端不会重新安装 APK,而是根据账号、空间、版本和云端资源路径下载对应的资源包。

版本类型

版本类型 用途 建议
开发/测试版本 日常制作、多人并行调试、功能验证。 可创建多个,开发阶段优先使用。
体验版 上线前给内部或客户验收。 通常一个项目只保留一个当前体验版,新上传会替换旧体验版。
线上版 正式交付和现场运行。 建议从确认无误的体验版晋升,不直接手动创建。
创建热更新版本
00:56:36创建版本后,在热更新面板选择目标版本和资源路径。

上传前必须确认的绑定关系

上传前先确认“后台空间、后台点位、Unity POI、Prefab 名称、热更新包名”一致。后续设备端能否下载和加载内容,主要取决于这些关系是否对齐。

检查项 推荐值或做法 原因
后台空间 选择当前项目实际使用的文旅后台空间。 设备端登录后只能看到账号有权限的空间和版本。
后台点位 点位名和 Unity POI / Prefab 绑定名保持一致,例如 case01 点位名不一致时,定位成功后可能找不到要加载的内容。
assetRootPath Assets/AssetBundles MetaTour 工具从这个目录及其子目录收集内容 Prefab、Loader 和依赖资源。
内容 Prefab Assets/AssetBundles/<点位名>.prefab 或任意子目录下的 Prefab。 这是 POI 上实际显示的模型、UI、动画或音视频内容;只要路径在资源根目录下即可。
Loader Prefab Assets/AssetBundles/loader_<点位名>.prefab 或任意子目录下的 Loader。 用于距离触发、点击触发或按条件加载内容。简单点位可以没有复杂 Loader,也不强制单独建 Loader 目录。
YooAsset 包名 MetaTour 官方 MetaTour 入口应用按这个包名解析资源包。
代码热更新程序集 MetaTourHotDll 只有需要自定义交互逻辑时使用;纯模型和 UI 更新通常不需要。

标准目录与字段示例

一个点位内容可以按下面的方式准备。这里以 case01 为例,实际项目把名称替换成后台点位名即可。

assetRootPath=Assets/AssetBundles
assetPackageName=MetaTour
contentPrefab=Assets/AssetBundles/case01.prefab
loaderPrefab=Assets/AssetBundles/loader_case01.prefab
hotUpdateAssemblies=MetaTourHotDll

如果团队已经按 ContentsLoaders 等子目录整理,也可以继续使用,只要这些子目录仍在 Assets/AssetBundles 下面。只是资源内容更新时,重点检查 contentPrefabloaderPrefab 和依赖资源;只有当 Prefab 上挂了新增脚本、交互状态机、扫码逻辑、小游戏规则等扩展代码时,才需要同时走代码热更新。

上传选项

  • 极速热更:常规流程,构建资源并上传云端。
  • 仅构建:只在本地生成资源包,不上传。
  • 仅上传:已有构建结果时直接上传。
  • 全量构建:首次上传或资源结构变化较大时使用。
  • 增量构建:后续小改动可减少构建和上传时间。
  • 强制同步上传:云端同名资源异常、上次上传损坏或需要覆盖时使用。
热更新上传面板
00:58:16首次上传建议走完整构建。后续小改动可使用增量方式。

热更新内容包上传流程

  1. 在文旅后台确认空间、点位和目标版本已经创建。首次给客户或现场验收时优先用体验版,确认无误后再晋升线上版。
  2. 在 Unity 中打开 MetaTour 工具面板,选择目标空间、目标版本和运行环境。
  3. 确认资源根路径为 Assets/AssetBundles,确认内容 Prefab、Loader 和依赖资源都在这个目录或它的子目录下。
  4. 选择构建方式。首次上传或目录结构变化时用全量构建;只改模型、材质、文案、贴图时可用增量构建。
  5. 点击构建/上传,等待工具生成 Android 平台资源包,并把资源上传到云端。
  6. 上传完成后记录目标版本、上传结果和云端路径。设备端实际拉取的是这个版本指向的云端资源。
  7. 回到模拟器或设备端,登录同一个账号,选择同一空间和版本,下载资源并验证内容。

构建产物长什么样

构建成功后,本地会生成 MetaTour 的 Android 热更新产物。常见输出目录形态类似 Bundles/Android/MetaTour/0,其中会包含资源包、版本文件、清单文件和报告文件。

Bundles/
  Android/
    MetaTour/
      0/
        *.bundle
        link.xml
        MetaTour.version
        MetaTour_0.bytes
        MetaTour_0.hash
        MetaTour_0.json
        MetaTour_0.report

如果团队把构建结果打成上传包或交给别人复核,还应包含资源包核心信息文件,例如 AssetBundleCoreInfo.json。上传前可用清单检查确认 assetPackageName=MetaTour,清单里的 PackageName 也是 MetaTour;如果启用了代码热更新,清单里应能看到 MetaTourHotDll

上传成功后的校验

  • MetaTour 工具面板显示上传成功,并生成或更新云端路径。
  • 云端路径通常会包含空间、版本和一次发布的唯一标识;后续设备端按该路径下载资源。
  • 文旅后台目标版本能看到最新资源配置,未误传到其他空间或其他版本。
  • 设备端选择同一空间和版本后能下载资源,定位成功后能加载对应 POI 内容。
  • 如果上传显示成功但设备端仍是旧内容,先清理设备缓存或切换版本,再检查是否上传到了错误环境。
工具会检测云端是否已有同名资源。正常情况下未变化资源会跳过上传;如果网络异常导致云端文件损坏,可以启用强制同步上传。强制同步只用于修复资源不一致,不建议每次都打开。
不要把临时测试程序集、编辑器脚本或底座未暴露的第三方库放进官方 MetaTour 热更新包。代码热更新只提交 MetaTourHotDll 需要的运行时逻辑,资源包只提交目标空间实际需要的 Prefab 和依赖。

9. 交互、触发与代码热更新

基础内容可以直接定位后加载。如果需要点击、距离触发、手势、手柄、UI 按钮或自定义业务逻辑,就要使用 MetaTour 内置组件或进入代码热更新流程。

常见触发方式

  • 直接加载:定位成功后加载某个 POI 下的模型或 UI。
  • 距离触发:进入指定距离后加载或播放,离开指定距离后隐藏或退出。
  • UI 点击:通过按钮打开内容、切换状态或触发流程。
  • 物体点击:用户选中三维物体后触发交互。
  • 自定义逻辑:需要脚本扩展、状态机或游戏规则时使用代码热更新。
Prefab 距离触发加载器
01:14:35距离触发加载器可配置进入/退出距离,再保存为 Prefab 参与热更新。

代码热更新规范

  1. 扩展代码放入项目约定的热更新程序集目录。
  2. 创建或使用项目规定的 Assembly Definition。
  3. 在 Assembly Definition 中显式引用需要的第三方库和 MetaTour/资源热更新依赖。
  4. 模型展示类内容不需要代码热更新;需要旋转、闪烁、扫码、游戏规则等逻辑时再添加脚本。
  5. 与底座系统交互时,优先通过接口或抽象层调用,避免直接引用易变组件导致冲突。
代码热更新程序集配置
01:12:20代码热更新需要 Assembly Definition 管理依赖。引用关系不完整会导致上传或运行失败。
如果第三方制作团队提交脚本,必须约定命名空间、程序集、依赖和接口边界。否则同名类、重复库或直接引用底座组件都可能造成热更新冲突。

10. 模拟器与设备验证

上传完成后,先在 Unity 模拟器或一台目标设备上验证。首次进入需要登录账号、选择空间和版本;后续如果账号和版本配置已缓存,启动流程会更短。

  1. 打开入口应用或模拟器。
  2. 输入文旅后台账号并登录。
  3. 选择项目空间。
  4. 选择要验证的版本。
  5. 点击开始,等待资源下载和定位。
  6. 检查模型位置、朝向、大小、材质、触发条件和路线行为。
模拟器登录界面
01:03:20首次登录需要选择空间和版本。截图中的账号信息已遮挡。
设备端选择应用和空间
01:33:34设备端验证时,先确认入口应用、账号、空间和版本都正确。
定位前账号、空间、版本、网络、设备权限和资源下载状态正确。
定位后POI 内容出现在预期位置,比例和朝向正确。
交互验证逐个测试点击、距离触发、UI 按钮、手势或手柄操作。
路线验证自动/手动导览需要确认路线、点位顺序和路网关系正确。

11. 批量安装与分发

现场设备较多时,批量部署工具可以减少手工安装、登录和下载资源的时间。它能识别已连接设备,安装 APK,拉取/推送账号配置和热更新资源,并辅助投屏查看。

连接设备

  • 开启设备开发者模式和调试权限。
  • 优先使用 USB 连接,多设备可使用稳定的 USB 集线器。
  • 无线调试需要手动输入设备 IP,适合少量设备或不方便插线时使用。
  • 工具左侧设备列表显示设备后,再执行安装或推送。

安装 APK

  1. 在工具中选择或拖入入口应用 APK。
  2. 选择要安装的设备。
  3. 点击批量安装。
  4. 如果出现签名冲突,先批量查询/卸载旧包,再重新安装。
批量部署工具中安装 APK
01:49:10批量部署工具支持选择 APK、安装、查询版本号和卸载旧包。示例路径和设备信息已遮挡。

分发账号、配置和资源

  1. 先用一台设备登录并拉取完整账号/空间/版本配置。
  2. 把账号配置和资源缓存拉取到本地工作目录。
  3. 连接多台设备。
  4. 批量推送账号配置、版本配置或资源缓存。
  5. 设备端启动后确认无需重复登录,且能进入目标空间版本。
批量部署工具中分发账号和资源
01:44:35批量部署工具可拉取本机缓存,再推送到连接设备。示例信息已遮挡。
部分设备组合需要厂商启动器或额外控制器。若眼镜中只看到手机镜像而不是 AR 内容,检查投屏/显示模式是否误开,并确认选择的是目标显示输出。

12. 常见问题

导包后报错检查 Unity 版本、URP 模板、Android 模块、输入系统提示和 UPM 依赖。红色配置项先用工具修复。
定位库加载失败检查 EasyAR 账号权限、定位库状态、API 配置、网络和当前 Unity 登录账号。
设备端找不到空间检查文旅后台账号权限、空间是否创建、版本是否创建并上传、设备端登录账号是否正确。
定位成功但内容不出现检查 POI 是否上传、Prefab 是否在热更新目录、资源是否上传到当前版本、触发条件是否满足。
热更新目录放错确认内容 Prefab、Loader 和共享依赖都位于 Assets/AssetBundles 或其子目录下;不要求固定放到 ContentsLoaders
模型位置或内容不对检查 POI 名称、后台点位、路线、地图坐标、Prefab 引用和最近一次 POI 数据是否重新提交。
材质显示异常确认工程使用 URP,模型材质兼容移动端,资源热更新后没有丢失贴图或 Shader 引用。
上传后设备没更新确认设备选择的是同一空间和版本;必要时清理缓存、切换版本或强制同步上传资源。
构建包缺清单检查输出目录是否包含 MetaTour.versionMetaTour_0.bytesMetaTour_0.json,打包复核时是否包含 AssetBundleCoreInfo.json
APK 安装失败检查 USB 调试、设备连接、旧包签名冲突和目标包名。可先卸载旧包再安装。
投屏看不到 AR 内容检查是否投到了手机屏幕而不是目标显示;关闭误开的手机镜像/无线投屏模式。
代码热更新失败检查程序集命名、脚本所在目录、依赖引用、命名空间冲突和是否执行了首次热更新初始化。

验收清单

账号EasyAR Mega 和文旅后台账号权限正确,密钥不外泄。
工程Unity 版本、URP 模板、Android 模块和 Git 已准备好。
插件EasyAR、MetaTour 工具、UPM 依赖和热更新初始化配置完成。
后台地图、定位库、空间、点位、路线和版本已创建。
Unity 内容地图可加载,POI 已放置,内容 Prefab 已保存到 Assets/AssetBundles 或其子目录。
目录结构Loader、共享模型、材质、贴图都在 Assets/AssetBundles 资源根目录内。
热更新包包名为 MetaTour,需要代码热更新时程序集为 MetaTourHotDll
上传目标版本、资源路径、全量/增量构建、云端路径和上传结果确认无误。
验证模拟器或单台设备能登录、选空间、选版本、定位并加载内容。
分发批量安装、账号配置推送、资源推送和旧包卸载流程验证通过。

本教程引用的视频时间点

  • 00:05-00:18 产品能力、热更新、版本和批量分发。
  • 00:21-00:29 Unity 版本、URP 模板、导入 EasyAR 插件。
  • 00:35-00:38 元游配置检查和代码热更新初始化。
  • 00:40-00:42 EasyAR 后台建图、定位库和配置字段。
  • 00:44-00:55 Unity 加载地图、放置 POI、绑定空间配置。
  • 00:49-00:59 Prefab 保存、内容包目录、创建版本、资源路径和热更新上传。
  • 01:00-01:17 交互组件、距离触发、代码热更新和 Prefab 依赖。
  • 01:31-01:50 设备安装、账号配置、资源推送和签名冲突处理。