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

embedded/2024/9/25 4:07:48/

文章目录

  • 📕教程说明
  • 📕Meta XR SDK 介绍
  • 📕前期准备
    • ⭐开启开发者模式
      • ⚡在 Meta 官网申请开发者
      • ⚡在 Meta Quest 手机 APP 开启开发者
    • ⭐电脑需要下载的软件
      • ⚡Meta Quest Link(以前叫做Oculus PC客户端)
      • ⚡Oculus ADB Drivers
      • ⚡SideQuest
      • ⚡87VR助手
      • ⚡Meta Quest Developer Hub
      • ⚡Unity Hub
  • 📕Unity 操作
    • ⭐Unity 环境配置
      • ⚡添加安卓模块
      • ⚡Building Settings 里将平台切换成安卓
      • ⚡导入 Meta XR SDK
      • ⚡Project Setup Tool 自动修复环境
      • ⚡Quality 设置
      • ⚡XR Plug-in Management
      • ⚡修改全局配置文件
    • ⭐配置玩家物体
    • ⭐例:快速配置可以被抓取的物体
    • ⭐将 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 选项。


http://www.ppmy.cn/embedded/43281.html

相关文章

条款9:利用destructors避免泄露资源

对指针说拜拜。承认吧,你从未真正喜欢过它,对不? 好,你不需要对所有指针说拜拜,但是你真的得对那些用来操控局部性资源(local resources)的指针说莎唷娜拉了。 举个例子,你正在为“小动物收养…

CS西电高悦计网课设——校园网设计

校园网设计 一,需求分析 所有主机可以访问外网 主机可以通过域名访问Web服务器 为网络配置静态或者动态路由 图书馆主机通过DHCP自动获取IP参数 为办公楼划分VLAN 为所有设备分配合适的IP地址和子网掩码,IP地址的第二个字节使用学号的后两位。 二…

前端开发工程师——AngularJS

一.表达式和语句 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthdevice-w…

央视网视频下载和花屏问题处理

央视网(www.cctv.com)视频下载往往是花屏的&#xff0c;如何处理呢&#xff1f; 如果您是IT技术开发者&#xff0c;那么您可以通过下面步骤自己实现。 用chrome浏览器&#xff0c;F2打开开发者工具&#xff0c;找到当前页面的network 然后找一个接口&#xff1a;https://vdn.a…

57. UE5 RPG 处理AI敌人转向以及拾取物品的问题

在上一篇文章中&#xff0c;我们实现了使用AI行为树控制敌人进行移动&#xff0c;它们可以一直跟随玩家&#xff0c;虽然现在还未实现攻击。但在移动过程中&#xff0c;我发现了有两个问题&#xff0c;第一个是敌人转向的时候很僵硬&#xff0c;可以说是瞬间转向的&#xff0c;…

Git原理及常用命令小结——实用版(ing......)、Git设置用户名邮箱

Git基本认识 Git把数据看作是对小型文件系统的一组快照&#xff0c;每次提交更新&#xff0c;或在Git中保存项目状态时&#xff0c;Git主要对当时的全部文件制作一个快照并保存这个快照的索引。同时&#xff0c;为了提高效率&#xff0c;如果文件没有被修改&#xff0c;Git不再…

【软考高项】- 2024.05.25 第一批考情介绍

一、选择题 1、信息化融合包含内容&#xff0c;产品&#xff0c;产业&#xff0c;等。 2、it内部审计 3、排列活动的数据表现工具 4、费用现值法 5、数据安全法 6、专利&#xff0c;外观设计&#xff0c;实用新型 7、有好几个过程定义和作用。 8、甲乙两公司&#xff0…

Java 8 HashMap源码解析

一、引言 HashMap是Java集合框架中最重要的类之一&#xff0c;它基于哈希表实现&#xff0c;提供了快速的插入和查找操作。在Java 8中&#xff0c;HashMap得到了一些改进&#xff0c;包括引入了红黑树&#xff08;在链表长度超过一定阈值时&#xff09;来优化查找和插入性能。…