Unity配置Android开发环境与第一个Demo
参照学习的资料
查看开发配置
Edit->Preferences->External Tools
如果像下图出现黄色警告,说明开发配置没有弄好
导入Android开发插件
Windows->Package Manager->点击下拉框选择Packages:Unity Registry
找到ARCore XR Plugin和AR Foundation,点击右侧Install安装
切换开发平台
File->Build Settings…打开设置窗口
选中”Android“,然后点击“Switch Platform”切换平台(因为我们最终程序要跑在Android手机上)
设置开发环境
点击Player Settings…
- 在Company Name和Product Name文本框中分别填写公司名和产品名
- 删除Other Settings选项卡下的Vulkan,
- 设置ARCore兼容的Android最低版本,找到“Minimun API Level”选项,,点击其下拉菜单,选择“Android7.0‘nougat’(API level 24)”或以 上
- “Target API Level”的设置可以是Automatic(highest installed)
- XR plug-in Management中勾选ARCore
搭建基础框架
-
项目重命名:在Scenes工程文件夹下,重命名场景文件为“Test3”,与此项目同名
-
在 Projects 窗口 Assets 目录下新建 Prefabs、Scripts 两个文件夹,同时在 Hierarchy 窗口中删除 Main Camera(因为 ARFoundation AR Session Origin 只带有一个 AR 摄像机,Directional Light 可根据需要决定是否删除)
-
在 Hierarchy 窗口选中 AR Session Origin 对象,然后在 Inspector 窗口中点击 Add Component 按 钮,并在弹出的搜索中搜索“AR Plane Manager”(用于检测平面和管理平面的可跟踪对象管理器),并添加该组件
-
将 Project 窗口中 Prefabs 文件夹下的 AR Default Plane 拖到 AR Plane Manager 组件下的 Plane Prefab 属性框
-
在 Project 窗口 Scripts 文件夹下,空白处点击鼠标右键,在弹出的级联菜单中依次选择 Create – >C# Script,新建一个脚本文件,并命名为 AppController
在这一步遇到的报错:这会影响到第六步cube中预制体的放置
Can’t add script component ‘AppController’ because the
script class cannot be found. Make sure that there are
no compile errors and that the file name and class
name match.解决方案:
Unity3d 拖拽脚本报错Can’t add the script component “” because the script class cannot be found
-
经过以上步骤,整体 AR 应用框架已完全搭建起来了,最后,我们在 Hierarchy 窗口中制作一个 cube, 为其赋上红色材质,将其 Scale 缩放成(0.1,0.1,0.1),最后将其制作成 Prefab 并删除 Hierarchy 场景中 的 cube
在这一步我遇到一个问题
因为第五步的这个报错,在选中cube后的Inspector窗口下添加组件也找不到这个脚本
最后一步,在 Hierarchy 窗口中选中 AR Session Origin,为其添加前面编写的 AppController 脚本 (可以使用 Add Component 在搜索框中搜索 AppController 添加,也可以直接把 AppController 脚 本拖到 AR Session Origin 对象上),并将上一步制作的 cube 拖到 AppController 脚本的 Spawn Prefab 属性框中。
进入到脚本中把脚本类名更改与脚本文件名相同即可
遇到的问题:如何改变物体的颜色
解决方案:
- 在Project目录下建一个Material文件
- 更改材质的颜色
- 将新材质拖到Cube上的Mesh Renderer下的Materials中的Element 0中
连接设备调试应用
-
连接设备必须保证是支持运行ARCore的,可通过官网信息查看更多信息,这里只列出支持AR的安卓(中国)设备
https://developers.google.cn/ar/devices#android_china
安卓(中国)
在中国,设备不随 Google Play 商店提供。此处列出的 Android 设备通过适用于 AR 的 Google Play 服务支持 ARCore,该服务可作为单独的可从以下应用商店下载的服务获得:
-
小米应用商店(小米应用商店)
-
华为应用商店(华为应用商店)
-
OPPO APP Market(OPPO软件商店)
-
Samsung Galaxy Apps (三星应用市场)
-
V-Appstore(vivo应用商店)
ARCore 支持在中国地区销售的这些设备:
制造商 | 设备型号 | 评论 |
---|---|---|
Huawei | Honor 10 | 支持多种 GPU 纹理分辨率 - 1440x1080、1280x960、480p 支持深度API |
Huawei | Honor Magic 2 | |
Huawei | Honor V20 | 支持多种 GPU 纹理分辨率 - 1440x1080、1280x960、480p |
Huawei | Maimang 7 | |
Huawei | Mate 20 | 支持深度API |
Huawei | Mate 20 Pro | |
Huawei | Mate 20 X | 支持深度API |
Huawei | Nova 3 | 支持多种 GPU 纹理分辨率 - 1440x1080、1280x960、480p 支持深度API |
Huawei | Nova 3i | |
Huawei | Nova 4 | 支持多种 GPU 纹理分辨率 - 1440x1080、1280x960、480p 支持深度API |
Huawei | P20 | 支持多种 GPU 纹理分辨率 - 1440x1080、1280x960、480p 支持深度API |
Huawei | P20 Pro | 支持多种 GPU 纹理分辨率 - 1440x1080、1280x960、480p |
Huawei | P30 | 支持多种 GPU 纹理分辨率 - 1440x1080、1280x960、480p 支持深度API |
Huawei | P30 Pro | 支持多种 GPU 纹理分辨率 - 2048x1536、1280x960、480p 支持深度API |
Huawei | Porsche Design Mate RS | |
Huawei | Porsche Design Mate 20 RS | |
Oppo | A53 5G | |
Oppo | A93 5G | |
Oppo | Find X3 | 支持深度API |
Oppo | Find X3 Pro | 支持深度API |
Oppo | F19 Pro+ | 支持深度API |
Oppo | K5 | 支持多种 GPU 纹理分辨率 - 1080p、720p、480p |
Oppo | K7x | 支持深度API |
Oppo | K9 5G | |
Oppo | Reno | |
Oppo | Reno 10x Zoom | 支持多种 GPU 纹理分辨率 - 1440x1080、1280x960、480p |
Oppo | Reno Ace | 支持深度API |
Oppo | Reno Ace 2 | |
Oppo | Reno Z | |
Oppo | Reno2 | 支持多种 GPU 纹理分辨率 - 1440x1080、1280x960、480p |
Oppo | Reno2 Z | 支持多种 GPU 纹理分辨率 - 1080p、720p、480p |
Oppo | Reno4 SE 5G | 支持深度API |
Oppo | Reno5 5G | |
Oppo | Reno5 K 5G | |
Oppo | Reno5 Pro 4G | |
Oppo | Reno5 Pro 5G | 支持深度API |
Oppo | Reno5 Pro+ 5G | 支持深度API |
Oppo | Reno6 Pro+ 5G | |
realme | Q | |
realme | Q2 Pro 5G | |
realme | Q3 5G | |
realme | X | |
realme | X Lite | |
realme | X2 | |
realme | X2 Pro | |
realme | X3 | |
realme | X50 Pro Player | |
realme | X7 5G | |
realme | X7 Pro 5G | |
realme | V5 5G | |
realme | 真我V13 5G | |
realme | 真我GT | |
realme | realme GT Neo | 支持深度API |
Samsung | Galaxy Note9 | |
Samsung | Galaxy S9 Exynos | 支持多种 GPU 纹理分辨率 - 1080p、720p、480p 支持深度API |
Samsung | Galaxy S9 Qualcomm | 支持多种 GPU 纹理分辨率 - 2048x1536、1280x960、480p 支持深度API |
Samsung | Galaxy S9+ Exynos | 支持多种 GPU 纹理分辨率 - 1080p、720p、480p 支持深度API |
Samsung | Galaxy S9+ Qualcomm | 支持多种 GPU 纹理分辨率 - 2048x1536、1280x960、480p 支持深度API |
Samsung | Galaxy S10e Exynos | 支持多种 GPU 纹理分辨率 - 1080p、720p、480p 支持深度API |
Samsung | Galaxy S10e Qualcomm | 支持多种 GPU 纹理分辨率 - 1440x1080、1280x960、480p 支持深度API |
Samsung | Galaxy S10 Exynos | 支持多种 GPU 纹理分辨率 - 1080p、720p、480p 支持深度API |
Samsung | Galaxy S10 Qualcomm | 支持多种 GPU 纹理分辨率 - 1440x1080、1280x960、480p 支持深度API |
Samsung | Galaxy S10+ Exynos | 支持多种 GPU 纹理分辨率 - 1080p、720p、480p 支持深度API |
Samsung | Galaxy S10+ Qualcomm | 支持多种 GPU 纹理分辨率 - 1440x1080、1280x960、480p 支持深度API |
Samsung | Galaxy S10 5G | 支持多种 GPU 纹理分辨率 - 1080p、720p、480p 支持深度API 支持飞行时间 (ToF) 硬件深度传感器 |
Vivo | iQOO | |
Vivo | iQOO 5 5G | |
Vivo | iQOO 5 Pro 5G | |
Vivo | iQOO Neo3 5G | |
Vivo | iQOO U1 | |
Vivo | iQOO Z1x | |
Vivo | NEX S | |
Vivo | NEX 3 4G/5G | |
Vivo | S7 5G | |
Vivo | X23 | |
Vivo | X50 5G | |
Vivo | X50 Pro | |
Vivo | X50 Pro+ | |
Vivo | V2046A | |
Vivo | V2047A | |
Vivo | V2056A | |
Vivo | Y51s | |
Vivo | Y70s | |
Xiaomi | Mi Mix 2S | 支持多种 GPU 纹理分辨率 - 1920x1440、1280x960、480p |
Xiaomi | Mi Mix 3 | |
Xiaomi | Mi 8 SE | |
Xiaomi | Mi 8 SE | |
Xiaomi | Mi 9 | |
Xiaomi | Mi 10 Ultra |
- 具体连接设备的方法详见汪祥春老师的博客ARCore之路-连接设备调试应用,照着做我并没有什么障碍,故不在记录
运行效果
-
连接好设备后,进入Build Settings中点击Build and Run
-
查看效果
视频可见,默认的平面检测出的效果,平面是浅黄的,边界是黑色,而且有平面重叠,效果不是很好