Skip to content

基于 ARWorld 在 Unity 中接入

基于易现自研ARWorld算法实现,提供云定位算法能力

1. 获取插件

插件下载地址:点我下载
插件版本支持: Unity2018 及以上

2. 更新说明

  • V 1.0.0
    基于易现自研 ARWorld 算法实现,提供云定位算法能力

3. 接入流程

本文示例代码是基于 Unity2020 版本
  1. 选择合适的 Unity 版本,将插件导入工程,文件结构见下图。
  2. 打开示例场景 Demo_ARWorld

    alt text

3.1 场景说明

alt text

3.2 示例代码

示例代码脚本 ProduceARStart.cs

csharp
  //启动AR
  //1.设置定位算法url
  //2.设置算法文件的路径
  //3.启动AR场景

  if (string.IsNullOrEmpty(cloudLocUrl)) 
  {
      Debug.Log("cloudLocUrl is empty or null!");
      return;
  }

  LSCloudLocationRequet.cloudUrl = cloudLocUrl;

  string configpath = Application.streamingAssetsPath + "/ezxr/config";
#if !UNITY_EDITOR
#if UNITY_ANDROID
  configpath = InsightARUtility.CopyAssetsToApplicationDataDir("ezxr") + "/config";
#endif
#endif
  LSGameManager.Instance.InitConfigPath(configpath);
  LSGameManager.Instance.InitARScene();

3.3 必要接口说明

3.3.1回调接口

  • LSCloudLocationRequet.lsCloudLocSuccess(CloudLocResult result) : 云定位成功回调。
  • LSCloudLocationRequet.lsCloudLocFail(CloudLocResult result) : 云定位失败回调。
  • LSCloudLocationRequet.lsCloudLocError(CloudLocResult result) : 云定位错误回调。
  • inner3dUpdateCall : 渲染引擎更新回调(每帧更新)。

3.3.2 参数说明

InsightAR.Internal.InsightTracking, 算法的参数及状态相关数据。

  • cloudLocationStatus : 定位状态,1表示成功,其他是失败或报错状态。
  • cloudLocationReason :定位原因。
  • cloudLocationSuccessCount : 定位成功次数。
  • cloudLocationTotalCount : 定位请求次数。
  • SetCloudLocationType(CloudRequestType) : 设置定位类型函数,默认 Always,表示一直定位状态;Once,表示仅定位成功后不再定位。

4. 建议说明

  • 开发时,虚拟内容请参考建图产物(Mesh 或点云文件)进行摆放;