Unity ARKit 学习 1.5(高精度绘制不规则表面、 识别2D图像、重新定位。。。)

ARKIt 1.5中新增 

 面部追踪、垂直面检测 、 更高精度绘制不规则表面、 识别2D图像、重新定位, 自动对焦、分辨率、重置世界原点

 

检测不规则平面绘制

创建plan预制体添加脚本ARKitPlaneMeshRender

第一个参数为平面mesh 二个参数用lineRenderer 绘制平面边缘

Unity ARKit 学习 1.5(高精度绘制不规则表面、 识别2D图像、重新定位。。。)

添加脚本UnityARGeneratePlane 并把刚才穿件的plane 赋值

Unity ARKit 学习 1.5(高精度绘制不规则表面、 识别2D图像、重新定位。。。)

 

识别图片

创建 要识别的图片 ARReferenceImage 和图片集ARReferenceImageSet

Unity ARKit 学习 1.5(高精度绘制不规则表面、 识别2D图像、重新定位。。。)

ARReferenceImage 设置: 设置名字 和texture physical size 为物理大小 尽量和图片实际大小设置一致 需要识别几个图片就创建几个 ARReferenceImage

Unity ARKit 学习 1.5(高精度绘制不规则表面、 识别2D图像、重新定位。。。)

ARReferenceImageSet 设置: 设置名字 和需要识别的所有 ARReferenceImage 添加进来

Unity ARKit 学习 1.5(高精度绘制不规则表面、 识别2D图像、重新定位。。。)

设置camer:

Unity ARKit 学习 1.5(高精度绘制不规则表面、 识别2D图像、重新定位。。。)

Unity ARKit 学习 1.5(高精度绘制不规则表面、 识别2D图像、重新定位。。。)

 

然后设置识别出物体后需要触发的事件

 

插件只以提供脚本 GenerateImageAnchor 参数1为识别的地图 参数2为识别出后显示的物体Unity ARKit 学习 1.5(高精度绘制不规则表面、 识别2D图像、重新定位。。。)

 

这样就OK了

 

重新定位

启动程序后当接到电话或者程序切换到后台后程序定位会不准确 设置重新定位后切换回来会重新定位

系统默认重新定位为fals 只要代码设置为ture 就可以

 

 UnityARSessionNativeInterface.ARSessionShouldAttemptRelocalization = true;

 

自动对焦

勾选可自动对焦

Unity ARKit 学习 1.5(高精度绘制不规则表面、 识别2D图像、重新定位。。。)

重置世界原点

每次重新定位时是将你虚拟位置的坐标与相机位置坐标重新定位

UnityARSessionNativeInterface.GetARSessionNativeInterface().SetWorldOrigin(camera.transform);