文章目录
- 📕教程说明
- [📕Meta XR SDK 介绍](#📕Meta XR SDK 介绍)
- 📕前期准备
-
- ⭐开启开发者模式
-
- [⚡在 Meta 官网申请开发者](#⚡在 Meta 官网申请开发者)
- [⚡在 Meta Quest 手机 APP 开启开发者](#⚡在 Meta Quest 手机 APP 开启开发者)
- ⭐电脑需要下载的软件
-
- [⚡Meta Quest Link(以前叫做Oculus PC客户端)](#⚡Meta Quest Link(以前叫做Oculus PC客户端))
- [⚡Oculus ADB Drivers](#⚡Oculus ADB Drivers)
- ⚡SideQuest
- ⚡87VR助手
- [⚡Meta Quest Developer Hub](#⚡Meta Quest Developer Hub)
- [⚡Unity Hub](#⚡Unity Hub)
- [📕Unity 操作](#📕Unity 操作)
-
- [⭐Unity 环境配置](#⭐Unity 环境配置)
- ⭐配置玩家物体
- ⭐例:快速配置可以被抓取的物体
- [⭐将 Unity 程序打包到头显中运行](#⭐将 Unity 程序打包到头显中运行)
- ⭐导入样例场景
此教程相关的详细教案,文档,思维导图和工程文件会放入 Spatial XR 社区。这是一个高质量 XR 开发者社区,博主目前在内担任 XR 开发的讲师。该社区提供专人答疑、完整进阶教程、从零到一项目孵化保姆服务(包含产品上架App lab)、投资|融资对接、工程文件下载等服务。
社区链接:
SpatialXR社区:完整课程、项目下载、项目孵化宣发、答疑、投融资、专属圈子
📕教程说明
这期教程我将介绍使用 Unity 开发 Meta Quest 应用的前期准备,Meta XR SDK 导入 Unity 和环境配置,以及如何配置玩家物体。
Unity 版本:2022.3.20f1
视频讲解链接:
(上)开发者模式,前期软件准备 https://www.bilibili.com/video/BV1kw4m1D7yF
(下)导入Meta XR SDK,配置玩家物体 https://www.bilibili.com/video/BV1LJ4m1P7gr
注:在制作教程的时候 SDK 版本还是 v64 版本,但是教程发布的时候,SDK的版本已经更新到了 v65 版本。不过相关的配置流程没有发生变化,所以大家可以放心看接下来的部分。
📕Meta XR SDK 介绍
📕前期准备
⭐开启开发者模式
⚡在 Meta 官网申请开发者
官方文档中的指导:https://developer.oculus.com/documentation/native/android/mobile-device-setup/
账号认证:(我之前使用的是手机号认证)
创建组织:
⚡在 Meta Quest 手机 APP 开启开发者
这个步骤非常重要!
开启开发者模式后,可以在 Quest 头显里的 "设置>系统" 中检查是否有"开发者"选项(截图源于Quest v64 系统)
不过有时候虽然头显里有开发者选项,主要还是看手机 APP 里的开发者模式是否是开启的。
⭐电脑需要下载的软件
⚡Meta Quest Link(以前叫做Oculus PC客户端)
用于串流调试,直接通过头显看到Unity中运行的画面。
串流:将电脑中显示的画面传输到头显中。
有线串流:通过USB线(推荐USB3.0)将头显与电脑连接在一起
无线串流:通过Wi-Fi将头显与电脑连接在一起
串流需要的电脑配置(推荐用 Windows,Mac 目前无法串流)
https://www.meta.com/zh-cn/help/quest/articles/headsets-and-accessories/oculus-link/requirements-quest-link/
Meta Quest Link软件打不开,一直在加载的解决方法:
一般是网络问题。
关键词
方法一:代理软件开隧道模式 TUN Mode
方法二:改 Host 文件
Meta Quest Link软件设置(重要)
在开启开发者模式的前提下:
⚡Oculus ADB Drivers
驱动软件
https://developer.oculus.com/downloads/package/oculus-adb-drivers/
⚡SideQuest
可以用于下载第三方应用,Quest 文件夹管理,投屏。
⚡87VR助手
SideQuest 替代品,作用和 SideQuest 类似,有中文界面
⚡Meta Quest Developer Hub
更多的开发者调试功能,应用上架商店 (需要科学上网)
⚡Unity Hub
用于管理不同版本的 Unity 编辑器。
国际版:
版本号后缀没有 c,导入 Meta XR SDK 比较方便(https://unity.com/download,需要科学上网才能下载到国际版,注意下载的 Unity Hub 版本后缀)
国服版:
大陆 ip 默认下载的是国服版,版本号后缀带有 c,对国内社区比较方便,过去导入 Meta XR SDK 不方便,但是 SDK v65 及以后版本解决了以前版本的导入问题。
如上图所示,上面的是国际版,下面的是国服版。
Meta XR SDK 的导入方式:
方法一:在 Unity 的资源商店中将 SDK 导入自己的资源库,然后从 Unity 中的 Package Manager 导入到项目中
方法二:从 Meta 官网(https://npm.developer.oculus.com/)将 SDK 下载到本地,然后在 Unity 的 Package Manager 中通过 Add package from tarball 从本地导入到项目中(SDK v65之前国服版 Unity 需要使用这种导入方式,但是 v65 及以后的版本可以直接使用第一种导入方式)。
📕Unity 操作
⭐Unity 环境配置
⚡添加安卓模块
第一次安装 Unity 编辑器时会有添加模块的过程。如果你已经安装了 Unity 编辑器,可以到 Unity Hub 的安装里找到对应版本的编辑器,然后添加模块,如下图所示:
安装安卓相关的模块,因为 Quest 一体机的安卓系统,相当于我们要开发安卓应用。
⚡Building Settings 里将平台切换成安卓
点击菜单栏的 File > Build Settings,将 Platform 切换成安卓:
⚡导入 Meta XR SDK
Meta XR SDK v65 及以后的版本,不管是国际版的 Unity,还是国服版的 Unity,应该都可以直接从 Unity 资源商店里进行导入。
首先打开 Unity Asset Store 资源商店的官网,将 Meta XR All-in-One SDK 添加到自己的资源库:
接下来打开 Unity 的 Window > Package Manager,选中 My Assets,安装 Meta XR All-in-One SDK
安装完成后它会自动导入里面包含的 Meta XR SDK。
⚡Project Setup Tool 自动修复环境
点击菜单栏的 Edit > Project Settings,找到 Meta XR,点击安卓端和 PC 端的 Fix All 和 Apply All,直到所有元素变绿,Project Setup Tool 能自动帮我们配置开发环境。
⚡Quality 设置
点击菜单栏的 Edit > Project Settings,找到 Quality,官方是推荐把 Anti-Aliasing 设为 4x Multi Sampling:
⚡XR Plug-in Management
如果之后你在 PC 串流调试的时候遇到只有一只眼睛渲染的情况,你可以把 XR Plug-in Management 下的 Oculus 的 PC 端的 Rendering Mode 设为 Multi Pass,但是需要注意,Project Setup Tool 会将它自动改回 Single Pass instanced,所以如果出现了上述的问题,需要手动修改。
另外安卓端的 Target Device 可以勾选上自己的设备:
⚡修改全局配置文件
在 Project 窗口中的 Assets >Oculus 文件夹下找到 Oculus Project Config,Target Devices 也勾选上自己开发的设备型号,并且将 Hand Tracking Support 改为 Controller And Hands 或 Hands Only 来开启手势追踪。
⭐配置玩家物体
配置玩家物体有多种方式,比如使用 Building Block(相关教程:Unity Meta XR SDK 快捷配置开发工具【Building Block/Quick Action/OVRCameraRigInteraction】),或者自己从头开始手动配置。而这期教程会介绍另一种简单的方法:
我们在 Project 窗口中搜索 OVRCameraRigInteraction 物体,搜索选项改为 All 或者 In Packages(因为 Meta XR SDK 的大部分资源存放在 Packages 文件夹下),然后将它添加到场景中:
这个是 Meta XR Core SDK 中提供的一个玩家物体,玩家物体就代表了我们在 XR 世界中的自己,而这个玩家物体集成了大部分的手柄和手势追踪交互功能,和交互相关的功能来自于 Meta Interaction SDK。
上图展示了一部分手势追踪交互相关的物体,可以看到该玩家物体上有许多 Interactor 后缀的物体。XR 的交互一般有两个对象参与:Interactor(发起交互的对象)和 Interactable(可以被交互的对象),Interactor 一般在玩家物体上,因为交互动作由玩家发起。Interactable 一般在可交互的物体上。那么有了 OVRCameraRigInteraction 这个玩家物体,我们基本就不用配置 Interactor 了,只需要把注意力放在给物体添加 Interactable 相关的脚本。
⭐例:快速配置可以被抓取的物体
玩家物体上已经有抓取相关的 Interactor,那么如果想要配置一个可被抓取的物体,是有比较便利的方法的。我们可以在 Unity 场景中添加一个物体,然后在 Hierarchy 面板中鼠标右键物体,选择 Interaction SDK > Add Grab interaction:
这时候会跳出一个窗口,首先点击 Fix All,它会在物体身上添加一些抓取需要的前置脚本,然后点击 Create:
这个时候,物体会多出一个子物体,这个子物体集成了抓取所需要的脚本:
这个时候运行程序,就能够看到抓取的功能。
⭐将 Unity 程序打包到头显中运行
点击菜单栏的 File > Build Settings,将要打包的场景放入Build Settings 中的Scenes In Build(可以点击 Add Open Scene,会自动添加当前的场景),头显与电脑连接成功后点击 Build And Run,将APK安装进头显,需要确保通过手机 APP 开启开发者模式后(有时候 Quest 系统更新,手机 APP 中的开发者模式会被关闭,要重新打开一下),Unity才能识别到头显设备。
⭐导入样例场景
与交互相关的场景用上了 Interaction SDK,但是它的样例场景包需要在 Unity 资源商店中额外导入,叫做 Meta XR Interaction SDK OVR Samples,然后在 Unity 的 Package Manager 中点击 Samples,手动将下方的样例场景文件导入到项目中:
导入的样例在 Assets 文件夹下。
其他 SDK 的样例场景也是在 Package Manager 找有没有 Samples 选项。