Appearance
基于 ARWorld 在 Unity 中接入
基于易现自研ARWorld算法实现,提供云定位算法能力
1. 获取插件
插件下载地址:点我下载
插件版本支持: Unity2018 及以上
2. 更新说明
- V 1.0.0
基于易现自研 ARWorld 算法实现,提供云定位算法能力
3. 接入流程
本文示例代码是基于 Unity2020 版本
- 选择合适的 Unity 版本,将插件导入工程,文件结构见下图。
- 打开示例场景 Demo_ARWorld
3.1 场景说明
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 或点云文件)进行摆放;