【Unity】创建一个自己的AR安卓程序

1 环境配置

Unity版本:2021.3.1f1 LTS
可在此处通过打开Unity Hub下载

安装过程中提示添加模块时,需要选择Android Build Support及其子模块。
在这里插入图片描述

2 下载官方提供的AR Starter工程

zip下载位置在此,点击即可下载。
下载完成解压后,即可通过Hub打开该工程。

3 AR Starter工程中的包以及打包设置

3.1 Package Manager

打开该工程的包管理器(Windows→Package Manager),选择工程中的包(In Project),可以观察到,相比于普通的项目,多了以下的这些包:

在这里插入图片描述

其中,URP包表示该项目是URP管线项目,其他的包:

  • AR Foundation:提供了用于在Unity中快速构建AR交互相关的类和GameObjects。
  • ARCore:安卓的AR框架。AR Foundation会与ARCore相联系以在安卓设备上获得AR功能。
  • ARKit:苹果的AR框架。AR Foundation会与ARKit相联系以在苹果设备上获得AR功能。
  • XR Plugin Management:管理ARCore和ARKit的工具。
    在这里插入图片描述
    目前,ARKit比ARCore支持更多的功能,包含3D物体追踪以及身体追踪。

3.2 Player Settings

打开该工程的项目设置(Edit→Project Settings),在左侧侧边栏选择Player,可以在安卓图标的面板下对项目进行设置。
在Other Settings中可以观察到有如下的一些更改:

  • 移除了安卓的Vulkan图形API,因为ARCore尚不支持。
    在这里插入图片描述

  • 设置安卓支持的最低级别API。

  • 将脚本后端设置为IL2CPP而不是Mono,以支持64位。

  • 将目标架构设置为ARM64以满足Google Play的64位要求。
    在这里插入图片描述

4 创建一个新的AR场景

项目中预制了一个AR模板场景,我们可以基于该场景创建自己的AR场景。
在Assets的Scene文件夹下使用Ctrl+N新建一个Scene(或者File→New Scene),选择AR场景,点击Create创建:
在这里插入图片描述
这样,就可以在该新建的AR Scene中添加自己的模型了,使用Ctrl+S保存该场景并为其命名。

如果不对该场景进行修改,直接打包出来安装在安卓手机上的话,那么你将看见一个旋转的立方体漂浮在空中。

安卓手机在打开应用后,会提示安装Google Play Services for AR,到应用商店安装好后再开启应用,允许应用使用摄像机,就会发现有一个旋转的立方体是固定在一个位置在旋转。

5 AR场景中的物体

在一个经典的3D场景中,unity会自动为我们创建2个物体:主摄像机Main Camera以及方向光Directional Light。

而对于AR场景来说,将会有这些物体:
在这里插入图片描述

  • AR Session Origin:空间中的AR设备。当用户在现实世界移动或旋转AR设备时,AR Session Origin在unity场景中也会相应的移动或旋转。
  • AR Camera:AR Session Origin的子物体,也即AR场景中的主摄像机,因此必须给它标上Main Camera的tag。它拥有一些组件使得这个相机能够在AR中起作用,如AR Pose DriverAR Camera ManagerAR Camera Background
  • AR Session:是一个Session管理器,包括帧率和与设备的通信。注意,一个场景中只能有一个激活的AR Session。

6 在unity中运行AR场景

  1. 观察到黑色的背景下,在中心有一个旋转的正方体。打包到手机上运行时,这个黑色背景会被替换成真实世界的环境。
    在这里插入图片描述

  2. 观察到一个名为Trackables的物体会作为AR Session Origin的子对象出现。它将用于存储现实世界环境中检测到的任何物体,如追踪到的面孔、平面或点等等。
    在这里插入图片描述

  3. 在运行状态下,选中AR Session Orgin物体,并在Inspector面板修改其position以及rotation值,这实际上就是在模拟用户手持着安卓设备在移动。

7 在AR场景的基础上添加自己的想法

7.1 修改Cube的旋转速度/方向

如果要使得Cube旋转得更快些,可以通过修改Cube物体下挂载的Scene Template_Rotate Cube脚本中的Rotate Speed来调整,修改Object Rotation可以调整Cube的旋转方向。
在这里插入图片描述

7.2 将Cube替换为其他物体

如果要添加其他物体,或者替换掉Cube,那么可以直接将物体添至AR Camera的可视范围内,为其挂载上Scene Template_Rotate Cube脚本即可。
在这里插入图片描述

8 打包至安卓手机上运行

注意,平台需切换至安卓平台。项目按照3.2节配置即可。

猜你喜欢

转载自blog.csdn.net/qq_41084756/article/details/129557200
今日推荐