ARFoundation之路-环境配置(Android)
Edit->Preferences->External Tools
如果像下图出现黄色警告,说明开发配置没有弄好
Windows->Package Manager->点击下拉框选择Packages:Unity Registry
找到ARCore XR Plugin和AR Foundation,点击右侧Install安装
File->Build Settings…打开设置窗口
选中”Android“,然后点击“Switch Platform”切换平台(因为我们最终程序要跑在Android手机上)
点击Player Settings…
项目重命名:在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 属性框中。
进入到脚本中把脚本类名更改与脚本文件名相同即可
遇到的问题:如何改变物体的颜色
解决方案:
Unity改变物体颜色(添加材质Materials)
连接设备必须保证是支持运行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 |
连接好设备后,进入Build Settings中点击Build and Run
查看效果
第一个Demo
视频可见,默认的平面检测出的效果,平面是浅黄的,边界是黑色,而且有平面重叠,效果不是很好