长沙做旅游网站公司,公司做了网站怎么做推广,深圳龙华建网站公司,直通车关键词怎么选 选几个专栏 本专栏将介绍如何使用这个支持热更的AR开发插件#xff0c;快速地开发AR应用。 链接#xff1a; Unity开发AR系列
热更数据制作#xff1a;制作热更数据-AR图片识别场景
插件简介
通过热更技术实现动态地加载AR场景#xff0c;简化了AR开发流程#xff0c;让用户可…专栏 本专栏将介绍如何使用这个支持热更的AR开发插件快速地开发AR应用。 链接 Unity开发AR系列
热更数据制作制作热更数据-AR图片识别场景
插件简介
通过热更技术实现动态地加载AR场景简化了AR开发流程让用户可更多地关注Unity场景内容的制作。
“EnvInstaller…”支持HybridCLR和ARCore的一键安装。
“AR SDK…”基于HybridCLR和ARFoundation实现使热更技术贯穿AR开发的全流程。 包含热更数据制作与导出、热更数据上传与下载、热更数据的版本控制与数据加载 资源下载
“EnvInstaller”点击下载
“AR SDK”点击下载 运行AR示例程序 在前面的《使用插件一键安装》、《配置带HybridCLR的AR开发环境》已介绍如何使用插件导入ARFoundationARCore、HybridCLR相关的Package以及如何划分程序集。 运行示例
划分程序集
示例中包含如下程序集定义这里需要在HybridCLR Settings中划分程序集
程序集类型简介Holo.Demo热更程序集包含各单项功能示例的程序集示例Demo中使用DynamicScene热更程序集AR动态场景示例的程序集示例Demo中使用Holo.RuntimeAOT程序集AR SDK核心程序集已编译成dll并添加至项目中。Assembly-CSharpAOT/热更都可Unity的默认全局程序集
打包程序 参考之前的文档在“HybridCLR Settings”中完成“划分程序集”和“补充元数据”的步骤。 打开场景“/Assets/Scenes/AOT/Scene_AOT_2.unity”。 打开“Build Settings”点击“Add Open Scenes”后执行“Build”或“Build And Run”。 注意若遇到gradle报错请检查“compileSdkVersion”和“buildToolsVersion”版本。 BTW网上很多教程这里不再补充说明。 运行示例 UI使用的是AssetsStore中的“UI Samples” 进入首页
加载数据:
程序启动时若本地数据存在则自动载入热更数据。点击“开始”按钮进入热更数据中的入口场景。 参考《制作热更数据-AR图片识别场景》制作热更数据在“场景导出”时设置入口场景。 下载数据
前提服务器已上传热更数据 参考《制作热更数据-AR图片识别场景》制作热更数据并将数据上传至服务器。 点击“更新”会先校验数据版本若服务器数据版本较新则更新数据。
关键组件
DataDownLoader组件
方法
StartDownload开始下载数据内部调用CheckDataVersion方法
检视面板 DllLoader组件 这里采用的是HybridCLR通过初始化从打包成assetbundle的scene还原挂载的热更新脚本的方式。HybridCLR 文档 主要方法
StartReadData开始读取热更数据包括热更程序集和AB包getEntrance获取热更数据的入口场景名称
检视面板 热更数据管理
DataDownLoader和DllLoader分别实现了数据下载和数据加载。 现创建了一个脚本统一管理热更数据。参考工程中的HotFixDataMgr.cs
给“开始”按钮添加点击事件挂载HotFixDataMgr的StartGame()方法 public void StartGame(){if(m_Status ! Status.READY){AndroidUtils.Toast(数据加载中请稍候...);return;}//获取入口场景名称string mainSceneName dllLoader.getEntrance();if (mainSceneName null){AndroidUtils.Toast(请先更新数据点击“更新”);return;}SceneManager.LoadSceneAsync(mainSceneName, LoadSceneMode.Single);}给“更新”按钮添加点击事件挂载HotFixDataMgr的UpdateData()方法 public void UpdateData(){if (m_Status ! Status.READY){AndroidUtils.Toast(程序未就绪请稍后再试);return;}...if (dataDownLoader ! null){m_Status Status.UPDATING;//开始更新切换为更新状态...//开始下载数据dataDownLoader.StartDownload();}}在HotFixDataMgr.cs的Awake方法中添加委托事件 private void Awake(){...//数据处理失败时触发dataDownLoader.OnError HandleError;dllLoader.OnError HandleError;//进度更新dllLoader.OnProgressUpdate HandleProgressFromDllLoader;dataDownLoader.OnProgressUpdate HandleProgressFromDataDownLoader;...}.../// summary/// 处理错误/// /summary/// param namemessage/paramprivate void HandleError(string message){if (Application.platform RuntimePlatform.Android){AndroidUtils.Toast(数据版本校验失败);}Debug.Log(数据版本校验失败);m_Status Status.READY;}private void HandleProgressFromDataDownLoader(float progress){int pro (int)(progress * 100);Debug.Log(数据同步进度 pro %);}private void HandleProgressFromDllLoader(float progress){int pro (int)(progress * 100);Debug.Log(数据加载进度 pro %);}