ARKit 1.0☀️ 四、是否支持ARKit、启动相机、开启检测平面

发布于:2022-12-24 ⋅ 阅读:(644) ⋅ 点赞:(0)

在这里插入图片描述

 目录

🟥 是否支持ARKit

🟧 启动相机

🟨 开启检测平面


🟥 是否支持ARKit

因部分设备支持ARKit,部分设备不支持,因此程序需判断该设备是否支持ARKit,在执行后续操作

1、Unity切换IOS平台,导入SDK,新建scene

2、新建Skode_Test脚本进行测试,内容如下

using UnityEngine;
using UnityEngine.XR.iOS;
using UnityEngine.UI;

public class Skode_Test : MonoBehaviour {

    public Text text01, text02;

	void Start () {
        //第一种判断方法
        ARKitSessionConfiguration configuration = new ARKitSessionConfiguration();
        text01.text = configuration.IsSupported.ToString();

        //第二种判断方法
        ARKitWorldTrackingSessionConfiguration configuration02 = new 
            ARKitWorldTrackingSessionConfiguration();
        text02.text = configuration02.IsSupported.ToString();
	}
}

3、根据脚本,Unity场景新建两个Text,并绑定到脚本

4、导出XCode:不必勾选Development Build

5、XCode Build到手机,若手机支持ARKit,则显示True。

      XCode需像上篇博客一样进行配置:配置地址(自第5步开始)

若用户手机不支持ARKit,则不希望用户下载该应用

该步在XCode进行配置

点击设计树中的Info.plist,为其添加下方红色框中的一栏

🟧 启动相机

1、Unity的Main Camera——Camera组件——Clear Flags改为Depth Only

2、为Main Camera添加Unity AR Video

      Unity AR Video的Clear Material赋值为YUVMaterial,该脚本功能是将摄像头拍摄到的画面渲染出来

      测试是使用ARKit remote App进行测试(ARKit remote App打包方法),观看是否能将手机拍到的画面渲染到Unity屏幕

3、为Unity场景添加ARKitRemoteConnection预制体

4、运行Unity,Unity可看到手机拍摄的画面,即启动了相机

🟨 开启检测平面

目的:添加组件,使检测到现实平面后,手机出现虚拟平面和点云

在启动相机基础上,进行如下操作:

1、为MainCamera添加UnityARCameraManager脚本,将MainCamera赋值给该脚本的Camera

      该脚本中含有检测检测手机是否支持ARKit的功能,所以就不需要再做检测手机是否支持ARKit的这份工作

2、添加平面:Unity添加空物体,改名GeneratePlane,位置归零,为其添加UnityARGeneratePlane脚本

      为该脚本的PlanePrefab赋值,例:debugPlanePrefab

3、添加点云:创建空物体PointCloud,位置归零,添加PointCloudParticleExample脚本

      点云预制体Point Cloud Particle Prefab:ParticlePainterPrefab

      点的最大数目Max Points To Show:1000

      点的大小Particle Size:0.01

4、启动手机Remote App,运行Unity,可看到检测到平面,出现点云

Remote App开发地址:ARKit Remote

大家还有什么问题,欢迎在下方留言!


 

在这里插入图片描述


如果你有 技术的问题  项目开发

都可以加下方联系方式

和我聊一聊你的故事🧡


网站公告

今日签到

点亮在社区的每一天
去签到