前言:Unity AR Foundation集合了基于安卓系统的AR Core和基于苹果系统的AR Kit,是一个非常强大的AR应用开发工具。然而目前AR Foundation在AR kit方面流程十分繁琐,对于新手而言需要查阅大量的资料、遇到大量的未知bug。本文为作者在Unity AR项目开发过程中探索的流程与碰到的问题集合,适用于新入手unity的初学者。
本文将详细描述如何在Unity中进行基于ios的AR Foundation的环境配置,并引入一个强大的AR Foundation远程通讯测试工具——AR Foundation Remote。在设置完成后,开发者无需多次打包项目为Xcode也可以进行实时测试。
声明:本文参考了许多AR Foundation前辈的博客内容,并就引用内容已在文末附上原文链接,如若涉及侵权或文章内容有误,请各位前辈及时指正!
(一)相关配置
-
Macbook Pro 2022(M2芯片,Sonoma 14.1.1系统)
-
Iphone 14Pro (iOS 17.1.1)
-
Unity 2021.3.20f1c1
-
Xcode 15.0.1(苹果应用的开发工具,在APP Store中可以下载,但是注意APP Store中能下载的Xcode版本取决于你电脑系统的版本。在电脑系统更新后Xcode很有可能需要重新更新)
上述为作者撰写文章时所用的相关配置。在为iOS系统开发AR应用的时候,需要使用Mac电脑来进行项目打包,因此Unity工程最好也在Mac上完成。确保Mac系统、iPhone系统与Xcode的版本互相兼容,否则在打包发布时可能会出现报错。这里作者使用的都是最新的系统。
(二)插件导入
首先,在Unity Hub中新建一个项目。其中第一步可以选择普通项目,也可以根据开发需求选择3D(URP)项目。两者区别主要在于渲染管线(Rendering Pipeline)的不同,在创建项目之后管线之间也可以相互切换。AR Foundation对上述两类管线都支持。
创建完成后,选择Window ➡️ Package Manager
Package Manager有时会默认显示项目内已有包(Packages: In Project),这时需要先调整为Unity Registry。然后在右上角搜索AR,安装如图所示的插件。
(三)设置开发环境
选择File ➡️ Build Settings
选择iOS平台并点击“Switch Platform”,当Unity的小图标在iOS这一栏则说明转换成功。
这里需注意Xcode运行的版本问题,如果在开发中途更新了电脑系统和Xcode版本,则这里需要重新设置,不然编译时可能会报错。
点击左下角的Player Settings。(这一选项也可以在Edit ➡️ Project Settings ➡️ Player 中找到)
在Player Setting中,设置公司名(如果是个人开发可以随意填写)、产品名、版本号,填写相机描述文字等。注意其中的Identifier信息,这个内容之后在Xcode打包时会用得上。
这里我们顺便进行AR Foundation Remoter的设置。选择左栏的XR Plug-in Management,在右边iOS栏中勾选ARKit。
至此环境配置已经初步完成,下面进行场景的设置。
(四)场景设置
在Assets中建立文件夹分类,有助于后续项目资产的分类管理。
选择Scenes文件夹,修改场景的名字,并删除Hierachy中的Main Camera。
选择 GameObject ➡️ XR,创建AR Session Origin, AR Session和AR Default Plane。也可以在Hierachy中右键进行添加。
将创建的AR Default Plane拖到我们刚刚创建的 Asset ➡️ Prefab 文件夹下,使其变成一个预设体(Prefab)。删除Hierachy中的AR Default Plane。
选中AR Session Origin,在右边的Inspector中选择“Add Component”,搜索“plane”,点击添加AR Plane Manager组件。
将创建的AR Default Plane预设体拖入Plane Prefab中。
至此,AR Foundation基础设置已经配置完毕。然而,在目前实际开发和测试过程中,由于AR应用依赖手机摄像头,我们并不能直接在电脑端通过运行Unity工程进行测试。针对这一问题,Unity Asset store中的第三方插件AR Foundation Editor Remote插件提供了基于WiFi或有线连接进行远程调试的解决方案。注意,本文使用的是AR Foundation Editor Remote 2.0版本。
AR Foundation Editor Remote2.0的官方网址:
(五)Remote插件设置
在Asset Store下载好这个插件后,会发现这个插件为一个.unitypackage文件。对于这一本地的Package文件,通过Assets ➡️ Import Package ➡️ Custom Package进行导入。
打开上方Edit ➡️ Project Settings,在XR Plug-in Management中选择AR Foundation Remote。
选中下方的AR Foundation Remote。这里我们需要我们测试设备的IP地址。
首先需要打开测试苹果手机的开发者模式:设置(Settings) ➡️ 安全与隐私(Privicy & Security) ➡️ 开发者模式(Developer Mode),打开开发者模式时手机会重启。
注意:在新的iOS系统中开发者模式可能会被隐藏,解决方案是将手机通过数据线连接打开Xcode的电脑即可。
获取手机的IP地址 (确保电脑和手机连接同一WiFi):设置 ➡️ 无线局域网 ➡️ 点击Wifi右侧的 i 图标 ➡️ 下翻找到手机此时的IP地址。
**将手机连接至电脑。**在上述Project Settings中填入手机的IP地址后,在Assets ➡️ Plugins ➡️ ARFoundationRemoteInstaller中找到Installer文件,在右边的Inspector中首先点击“Embed AR Foundation”,然后点击安装”Install AR Companion APP”。
编译完成后,Xcode会自动打开。首先设置连接设备为我们测试的手机,选中Unity-iPhone ➡️ Signing & Capabilities,在Signing中选择“Automatically manage signing”,就可以将项目设置为Personal Team(如果公司有开发者账号,则选择公司的开发者账号即可)。
设置Bundle Identifier,注意这里的内容需与前文我们在Unity Player Setting中设置的一致。(如果忘记了可以在Edit ➡️ Project Settings ➡️ Player中查看)
在General中,设置app的显示名字、版本号后,点击左上角编译键就可以开始编译导出为app了。
编译完成后,与电脑连接的手机上会自动安装好AR Companion APP,APP打开后正确界面如图所示。
可以尝试在场景中摆放几个测试物体,点击运行,就可以在手机和unity端看到测试内容了。
注意:在运行Unity工程前,测试手机APP必须先打开。
在测试过程中,可能会看到类似途中黄色半透明平面(URP工程中显示为粉色)。这是由于AR Foundation默认在检测平面的同时对检测到的平面进行了某一材质的渲染。
这一问题的解决方式为:Assets ➡️ Prefab ➡️ AR Default Plane右侧的Inspector中,对Line Renderer和Mesh Renderer的材质进行修改。
至此相关基础设置已经全部完毕,可以进行自由创作与测试。
参考链接:
ARFoundation之路-环境配置(iOS)之一_arfoundation ios-CSDN博客文章浏览阅读5.9k次。 前文我们讲述了ARFoundation开发Android应用的开发环境配置与发布部署,本文主要讲述在Mac电脑上使用Unity开发ARFoundation AR应用的环境配置与发布部署,ARFoundation在iOS端使用的是ARKit的底层技术,并且Unity工程不能一次性发布成iOS包文件,Unity利用ARFoundation发布iOS AR应用需要分为两步:第一步使用Unity生成X..._arfoundation ioshttps://blog.csdn.net/yolon3000/article/details/93405795AR Foundation Editor Remote插件使用方法_ar foundation remote怎么用_Defining the Future的博客-CSDN博客文章浏览阅读3.9k次,点赞10次,收藏24次。一、AR Foundation Editor Remote插件简介像我们使用 ARCore XR Plugin For Unity 或者 ARKit XR Plugin For Unity 都有远程调试功能方便我们调试代码。而ARFoundation远程调试功能,正在开发当中。所以从 UnityAssetstore 中购买了一个第三方开发的 AR Foundation Editor Remote 远程调试工具,它可以通过Wi-Fi或有线连接支持AR功能的移动设备上进行调试。二、创建有关于AR Found_ar foundation remote怎么用
https://blog.csdn.net/jianjianshini/article/details/115871841