【重制版】Unity Meta Quest 一体机开发(一):前期准备,Meta XR SDK导入和环境配置,配置玩家物体

文章目录

  • 📕教程说明
  • [📕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 操作)

此教程相关的详细教案,文档,思维导图和工程文件会放入 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将头显与电脑连接在一起

下载链接:https://www.meta.com/zh-cn/help/quest/articles/headsets-and-accessories/oculus-rift-s/install-app-for-link/

串流需要的电脑配置(推荐用 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 选项。

相关推荐
omegayy18 小时前
Unity 2022.3.x部分Android设备播放视频黑屏问题
android·unity·视频播放·黑屏
虾球xz20 小时前
游戏引擎学习第200天
学习·游戏引擎
woshihedayu1 天前
虚幻引擎控制角色跟随移动方向旋转的方法
游戏引擎·虚幻
虾球xz1 天前
游戏引擎学习第199天
学习·游戏引擎
与火星的孩子对话1 天前
Unity3D开发AI桌面精灵/宠物系列 【三】 语音识别 ASR 技术、语音转文本多平台 - 支持科大讯飞、百度等 C# 开发
人工智能·unity·c#·游戏引擎·语音识别·宠物
向宇it1 天前
【零基础入门unity游戏开发——2D篇】2D 游戏场景地形编辑器——TileMap的使用介绍
开发语言·游戏·unity·c#·编辑器·游戏引擎
牙膏上的小苏打23332 天前
Unity Surround开关后导致获取主显示器分辨率错误
unity·主屏幕
Unity大海2 天前
诠视科技Unity SDK开发环境配置、项目设置、apk打包。
科技·unity·游戏引擎
浅陌sss2 天前
Unity中 粒子系统使用整理(一)
unity·游戏引擎
维度攻城狮2 天前
实现在Unity3D中仿真汽车,而且还能使用ros2控制
python·unity·docker·汽车·ros2·rviz2