Unity配置Android开发环境与第一个Demo

简介: ARFoundation之路-环境配置(Android)
+关注继续查看


参照学习的资料

ARFoundation之路-环境配置(Android)

查看开发配置

Edit->Preferences->External Tools

如果像下图出现黄色警告,说明开发配置没有弄好

image

导入Android开发插件

Windows->Package Manager->点击下拉框选择Packages:Unity Registry

找到ARCore XR Plugin和AR Foundation,点击右侧Install安装

image

切换开发平台

File->Build Settings...打开设置窗口

选中”Android“,然后点击“Switch Platform”切换平台(因为我们最终程序要跑在Android手机上)

image

设置开发环境

点击Player Settings...

  1. 在Company Name和Product Name文本框中分别填写公司名和产品名
  2. 删除Other Settings选项卡下的Vulkan,
  3. 设置ARCore兼容的Android最低版本,找到“Minimun API Level”选项,,点击其下拉菜单,选择“Android7.0‘nougat’(API level 24)”或以 上
  4. “Target API Level”的设置可以是Automatic(highest installed)
  5. XR plug-in Management中勾选ARCore

image

image

搭建基础框架

  1. 项目重命名:在Scenes工程文件夹下,重命名场景文件为“Test3”,与此项目同名
    image
  2. 在 Projects 窗口 Assets 目录下新建 Prefabs、Scripts 两个文件夹,同时在 Hierarchy 窗口中删除 Main Camera(因为 ARFoundation AR Session Origin 只带有一个 AR 摄像机,Directional Light 可根据需要决定是否删除)
  3. 在 Hierarchy 窗口选中 AR Session Origin 对象,然后在 Inspector 窗口中点击 Add Component 按 钮,并在弹出的搜索中搜索“AR Plane Manager”(用于检测平面和管理平面的可跟踪对象管理器),并添加该组件
  4. 将 Project 窗口中 Prefabs 文件夹下的 AR Default Plane 拖到 AR Plane Manager 组件下的 Plane Prefab 属性框
    image
  5. 在 Project 窗口 Scripts 文件夹下,空白处点击鼠标右键,在弹出的级联菜单中依次选择 Create -- >C# Script,新建一个脚本文件,并命名为 AppController
    在这一步遇到的报错:这会影响到第六步cube中预制体的放置

Can't add script component 'AppController' because thescript class cannot be found. Make sure that there areno compile errors and that the file name and classname match.

  1. image
    解决方案:
    Unity3d 拖拽脚本报错Can't add the script component "" because the script class cannot be found
  2. 经过以上步骤,整体 AR 应用框架已完全搭建起来了,最后,我们在 Hierarchy 窗口中制作一个 cube, 为其赋上红色材质,将其 Scale 缩放成(0.1,0.1,0.1),最后将其制作成 Prefab 并删除 Hierarchy 场景中 的 cube在这一步我遇到一个问题因为第五步的这个报错,在选中cube后的Inspector窗口下添加组件也找不到这个脚本image最后一步,在 Hierarchy 窗口中选中 AR Session Origin,为其添加前面编写的 AppController 脚本 (可以使用 Add Component 在搜索框中搜索 AppController 添加,也可以直接把 AppController 脚 本拖到 AR Session Origin 对象上),并将上一步制作的 cube 拖到 AppController 脚本的 Spawn Prefab 属性框中。进入到脚本中把脚本类名更改与脚本文件名相同即可image遇到的问题:如何改变物体的颜色解决方案:Unity改变物体颜色(添加材质Materials)
    1. 在Project目录下建一个Material文件
    2. 更改材质的颜色
    3. 将新材质拖到Cube上的Mesh Renderer下的Materials中的Element 0中
  1. image

连接设备调试应用

  1. 连接设备必须保证是支持运行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 支持在中国地区销售的这些设备:
制造商设备型号评论
HuaweiHonor 10支持多种 GPU 纹理分辨率 - 1440x1080、1280x960、480p 支持深度API
HuaweiHonor Magic 2
HuaweiHonor V20支持多种 GPU 纹理分辨率 - 1440x1080、1280x960、480p
HuaweiMaimang 7
HuaweiMate 20支持深度API
HuaweiMate 20 Pro
HuaweiMate 20 X支持深度API
HuaweiNova 3支持多种 GPU 纹理分辨率 - 1440x1080、1280x960、480p 支持深度API
HuaweiNova 3i
HuaweiNova 4支持多种 GPU 纹理分辨率 - 1440x1080、1280x960、480p 支持深度API
HuaweiP20支持多种 GPU 纹理分辨率 - 1440x1080、1280x960、480p 支持深度API
HuaweiP20 Pro支持多种 GPU 纹理分辨率 - 1440x1080、1280x960、480p
HuaweiP30支持多种 GPU 纹理分辨率 - 1440x1080、1280x960、480p 支持深度API
HuaweiP30 Pro支持多种 GPU 纹理分辨率 - 2048x1536、1280x960、480p 支持深度API
HuaweiPorsche Design Mate RS
HuaweiPorsche Design Mate 20 RS
OppoA53 5G
OppoA93 5G
OppoFind X3支持深度API
OppoFind X3 Pro支持深度API
OppoF19 Pro+支持深度API
OppoK5支持多种 GPU 纹理分辨率 - 1080p、720p、480p
OppoK7x支持深度API
OppoK9 5G
OppoReno
OppoReno 10x Zoom支持多种 GPU 纹理分辨率 - 1440x1080、1280x960、480p
OppoReno Ace支持深度API
OppoReno Ace 2
OppoReno Z
OppoReno2支持多种 GPU 纹理分辨率 - 1440x1080、1280x960、480p
OppoReno2 Z支持多种 GPU 纹理分辨率 - 1080p、720p、480p
OppoReno4 SE 5G支持深度API
OppoReno5 5G
OppoReno5 K 5G
OppoReno5 Pro 4G
OppoReno5 Pro 5G支持深度API
OppoReno5 Pro+ 5G支持深度API
OppoReno6 Pro+ 5G
realmeQ
realmeQ2 Pro 5G
realmeQ3 5G
realmeX
realmeX Lite
realmeX2
realmeX2 Pro
realmeX3
realmeX50 Pro Player
realmeX7 5G
realmeX7 Pro 5G
realmeV5 5G
realme真我V13 5G
realme真我GT
realmerealme GT Neo支持深度API
SamsungGalaxy Note9
SamsungGalaxy S9 Exynos支持多种 GPU 纹理分辨率 - 1080p、720p、480p 支持深度API
SamsungGalaxy S9 Qualcomm支持多种 GPU 纹理分辨率 - 2048x1536、1280x960、480p 支持深度API
SamsungGalaxy S9+ Exynos支持多种 GPU 纹理分辨率 - 1080p、720p、480p 支持深度API
SamsungGalaxy S9+ Qualcomm支持多种 GPU 纹理分辨率 - 2048x1536、1280x960、480p 支持深度API
SamsungGalaxy S10e Exynos支持多种 GPU 纹理分辨率 - 1080p、720p、480p 支持深度API
SamsungGalaxy S10e Qualcomm支持多种 GPU 纹理分辨率 - 1440x1080、1280x960、480p 支持深度API
SamsungGalaxy S10 Exynos支持多种 GPU 纹理分辨率 - 1080p、720p、480p 支持深度API
SamsungGalaxy S10 Qualcomm支持多种 GPU 纹理分辨率 - 1440x1080、1280x960、480p 支持深度API
SamsungGalaxy S10+ Exynos支持多种 GPU 纹理分辨率 - 1080p、720p、480p 支持深度API
SamsungGalaxy S10+ Qualcomm支持多种 GPU 纹理分辨率 - 1440x1080、1280x960、480p 支持深度API
SamsungGalaxy S10 5G支持多种 GPU 纹理分辨率 - 1080p、720p、480p 支持深度API 支持飞行时间 (ToF) 硬件深度传感器
VivoiQOO
VivoiQOO 5 5G
VivoiQOO 5 Pro 5G
VivoiQOO Neo3 5G
VivoiQOO U1
VivoiQOO Z1x
VivoNEX S
VivoNEX 3 4G/5G
VivoS7 5G
VivoX23
VivoX50 5G
VivoX50 Pro
VivoX50 Pro+
VivoV2046A
VivoV2047A
VivoV2056A
VivoY51s
VivoY70s
XiaomiMi Mix 2S支持多种 GPU 纹理分辨率 - 1920x1440、1280x960、480p
XiaomiMi Mix 3
XiaomiMi 8 SE
XiaomiMi 8 SE
XiaomiMi 9
XiaomiMi 10 Ultra
  1. 具体连接设备的方法详见汪祥春老师的博客ARCore之路-连接设备调试应用,照着做我并没有什么障碍,故不在记录

运行效果

  1. 连接好设备后,进入Build Settings中点击Build and Run
    image
  2. 查看效果
    第一个Demo
    视频可见,默认的平面检测出的效果,平面是浅黄的,边界是黑色,而且有平面重叠,效果不是很好


相关实践学习
通过GPU云服务器生成AI视频
本教程介绍如何使用GPU云服务器搭建Stable Diffusion模型,并基于ModelScope框架,实现使用文本生成视频。
相关文章
|
28天前
|
数据采集 编解码 vr&ar
Android平台实现VR头显Unity下音视频数据RTMP推送
随着技术发展的日新月异,虚拟现实产业已经从过去的探索期,自2020年起,慢慢过渡到高速发展期,随着5G时代的到来,大带宽高可靠低延迟网络环境,为虚拟现实产业提供了很好的网络保障,虚拟现实在越来越多的场景下有了应用价值,典型场景如工业互联网、虚拟仿真、文旅文博、智慧交通、智慧能源、智慧医疗、智慧校园、智慧农业等。同事,行业也对清晰度、流畅性和交互感也提出了更高的要求。本文从Android平台的采集推送为例,介绍下基于头显或类似终端的低延迟解决方案。
|
9月前
|
存储 负载均衡 安全
【Unity干货教程】如何实现Unity和Android原生互相调用?
Unity是一个跨平台开发工具,发布到移动平台也是大部分Unity开发者的必备技能。而由于Unity跨平台的特性,总会遇到在移动平台的技术细节支持不够,或者需要在调用其他原生插件的情况。这里我们说一下如何在Android Studio中创建一个可供Unity调用的aar插件,以实现Unity和Android原生互相调用的目的。
|
10月前
|
自然语言处理 Java C#
浅谈 Unity、iOS、Android 闭包的使用方法
浅谈 Unity、iOS、Android 闭包的使用方法
161 0
浅谈 Unity、iOS、Android 闭包的使用方法
|
10月前
|
Java 图形学 Android开发
Android/iOS内嵌Unity开发示例
Android/iOS内嵌Unity开发示例
326 0
Android/iOS内嵌Unity开发示例
|
XML vr&ar Android开发
【Android】Android与Unity安卓AR通信(3)
unity导出作为安卓项目中的库来使用 1. 首先打开一个安卓项目 2. 准备好unity中Export出的安卓包
174 0
|
Java C# Android开发
Unity与安卓通信(2)
Unity与安卓通信(2)
56 0
|
Java API 图形学
安卓与Unity通信(1)
通过导入Unity的classes.jar,继承unity的UnityPlayerActivity实现unity与安卓的交互
188 0
|
存储 监控 Java
Android 打包AAB+PAD(Unity篇)(下)
Play Asset Delivery Unity API 集成 检索 AssetBundles 安装时交货 快速跟进和按需交付 检查状态 监控下载 大量下载 取消请求(仅限按需) 异步请求资产包 其他 Play Core API 方法 检查下载大小 移除 AssetBundles 测试 行为 限制 使用内部应用共享进行测试
511 0
Android 打包AAB+PAD(Unity篇)(下)
|
存储 安全 API
Android 打包AAB+PAD(Unity篇)(上)
AAB Play Asset Delivery 分发模式 资源更新 纹理压缩格式定位 应用版本更新 下载大小上限 针对 Unity 构建 使用 UI 配置 AssetBundles 使用 API 配置资产包
997 0
Android 打包AAB+PAD(Unity篇)(上)
|
存储 图形学 Android开发
Android/Unity大乱斗-完整双方集成交互指南-下篇
众所周知,人生是一个漫长的流程,不断克服困难,不断反思前进的过程。在这个过程中会产生很多对于人生的质疑和思考,于是我决定将自己的思考,经验和故事全部分享出来,以此寻找共鸣!!!
923 0
相关产品
机器翻译
推荐文章
更多