检查手机是否支持ARCore功能

在谷歌官方对ARCore的介绍中,提到启用 ARCore 有两种方法:AR 必备和 AR 可选

AR 必备

AR 必备是指您的应用没有 AR 便无法使用。 应用商店会确保您的应用只能在支持AR的设备上运行,当用户安装 AR 必备应用时,应用商店会自动安装 ARCore,然后再安装应用。

要将应用设置为 AR 必备,确保按下图所示勾选 Edit > Project Settings > ARCore > ARCore Required 菜单项。 该菜单项默认情况下处于勾选状态。

您的应用将自动执行运行时检查,以确保设备支持 ARCore 并已将其安装。 如果 ARCore 未安装(可能因为它被用户移除)或版本过旧,您的应用将提示用户安装或更新。 如果安装或更新失败(可能因为网络故障),Session.Status 将返回错误,您的应用应处理错误并退出。

AR 可选

AR 可选是指您的应用包括的一项或多项 AR 功能会在设备支持 ARCore 时启用。 但应用也可在不支持 ARCore 的设备上安装和运行。 当用户安装 AR 可选应用时,应用商店不会自动安装 ARCore

要将应用设置为 AR 可选,请取消选中 Edit > Project Settings > ARCore > ARCore Required 菜单项。

可以使用代码检查,遇到不支持ARCore的设备、没有安装ARCore设备、或者安装ARCore版本过低设备时候,您可以提醒用户安装或更新ARCore,也可以直接跳过AR功能(代码如下)

  /// <summary>检查设备</summary>
    private bool OnCheckDevice()
    {
        if (Session.Status == SessionStatus.ErrorSessionConfigurationNotSupported)
        {
            Debug.Log("ARCore在本机上不支持或配置错误!");
            return false;
        }
        else if (Session.Status == SessionStatus.ErrorPermissionNotGranted)
        {
            Debug.Log("AR应用的运行需要使用摄像头,现无法获取到摄像头授权信息,请允许使用摄像头!");
            return false;
        }
        else if (Session.Status.IsError())
        {
            Debug.Log("ARCore运行时出现错误,请重新启动本程序!");
            return false;
        }

        return true;
    }

官方教程地址:https://developers.google.cn/ar/develop/unity/enable-arcore

Unity QQ交流群:299412191 欢迎对Unity感兴趣的同学加入.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章