Unity VR 开发教程: Oculus 一体机开发 (一) 环境配置(基于 Oculus Integration v46)

news2025/7/15 21:03:11

文章目录

  • 📕教程说明
  • 📕安装 Unity 时需要添加的模块
  • 📕设置 Unity 的 Build Settings
  • 📕导入 Oculus Integration
  • 📕设置 Project Settings
    • ⭐通用设置
    • ⭐Rendering 设置
    • ⭐Identification 设置
    • ⭐Configuration 设置
    • ⭐XR Plug-in Management 设置
    • ⭐Quality 设置
  • 📕开启手势追踪
  • 📕测试打包

📕教程说明

前期准备:开启 Quest 的开发者模式,允许 USB 连接,电脑安装 Oculus ADB Drivers (链接:https://developer.oculus.com/downloads/package/oculus-adb-drivers/
这些基本是 Quest 买到手后会进行的操作,网上也有许多 Quest 新手使用教程,因此本教程就不对这些东西进行详细说明啦。

电脑操作系统:Windows

使用的 VR 设备:Meta Quest 2

使用的 Unity 版本:2021.3.5 LTS (这里推荐使用 2021 及以上的 LTS 版本)

Oculus Integration 版本:v46

官方文档:https://developer.oculus.com/documentation/unity/

注:本篇教程可能具有时效性,因为 Oculus 的 SDK 更新迭代得比较快,如果大家使用的 SDK 版本比我的新,在不方便查看官方文档的情况下也可以先试试本篇教程的配置步骤,如果发现教程过时,欢迎大家进行反馈,我也会及时进行更改说明,一切以官方文档为主。


📕安装 Unity 时需要添加的模块

第一次安装这个版本的 Unity 编辑器时会有添加模块的过程。如果你已经安装了 Unity 编辑器,可以到 Unity Hub 的安装里找到对应版本的编辑器,然后添加模块,如下图所示:

在这里插入图片描述

然后安装安卓相关的模块,因为 Quest 一体机的系统是安卓,相当于我们要开发安卓应用。

在这里插入图片描述


📕设置 Unity 的 Build Settings

进入 Unity 编辑器后,点击菜单栏的 File -> Build Settings
将 Platform 切换到 Android(点 Android 的 Switch Platform),然后进行如下操作:

  • 将 Texture Compression 设为 ASTC
  • Run Device 切换成 Quest 设备(要先保证头显和电脑进行了连接)。

在这里插入图片描述


📕导入 Oculus Integration

打开 Unity Asset Store 的网址(搜索引擎可以搜到),搜索 Oculus Integration (我写这篇文章的时候 Integration 的版本为 46.0),然后添加这个资源

在这里插入图片描述
接下来打开 Unity 菜单栏的 Window -> Package Manager,在 My Assets 中找到 Oculus Integration,然后将它导入:

在这里插入图片描述

在这里插入图片描述

接下来会跳出几个界面:
选择 Yes

在这里插入图片描述

选择 Use OpenXR

在这里插入图片描述

选择 Restart

在这里插入图片描述

选择 Show Assets

在这里插入图片描述

选择 Clean Up Package:

在这里插入图片描述

选择 Upgrade

在这里插入图片描述

选择 Restart

在这里插入图片描述

这时候,就成功导入了 Oculus Integration

官方文档中的步骤总结:

在这里插入图片描述


📕设置 Project Settings

官方文档部分:
https://developer.oculus.com/documentation/unity/unity-conf-settings/
打开编辑器菜单栏的 Edit -> Project Settings -> Player

⭐通用设置

根据自己的需求设置公司名,项目名,版本号:

在这里插入图片描述
然后打开 Player -> Other Settings

⭐Rendering 设置

找到 Rendering,进行如下操作:

  • 将 Color Space 设为 Linear
  • 取消勾选 Auto Graphics API,用拖动的方式将 OpenGLES3 置顶
  • 勾选 Multithreaded Rendering
    在这里插入图片描述

⭐Identification 设置

找到 Identification,设置 Minimum API Level 为 29

在这里插入图片描述

⭐Configuration 设置

如图进行设置:

在这里插入图片描述

⭐XR Plug-in Management 设置

找到 Project Settings 中的 XR Plug-in Management,先点 Install

然后在安卓图标的界面下勾选 Oculus,导入 Oculus XR Plugin

在这里插入图片描述

然后在电脑图标的界面下也勾选 Oculus,这样我们能通过头显和电脑串流的方式,在 Unity 的 Play Mode 下进行调试,这是为了在开发程序的时候能直接点击 Unity 的运行按钮来查看游戏场景,省去将程序打包成安卓 APK 再导入一体机运行的时间。

在这里插入图片描述

这里需要注意一下,XR Plug-in Management 的 Open XR 是 Unity 自己的 Open XR Plugin,之前导入 Oculus Integration 时选择的 Open XR 是 Oculus 的 OpenXR Backend,二者不是同一个东西

下图是 Oculus XR Plugin 的运行原理:

在这里插入图片描述
(后来经测试,电脑端选用 Unity OpenXR 插件而不选用 Oculus 也是能够正常运行的,暂时还没遇到什么问题)

接下来,我们点击 XR Plug-in Management 下的 Oculus,这里的设置可以根据需求改,我一般习惯把 Render Mode 改为 Multi Pass。Multi Pass 会将场景渲染两次,分别显示在两只眼睛中,这种渲染方式虽然性能会差一点,但是具有高兼容性。

在这里插入图片描述

电脑端:

在这里插入图片描述

⭐Quality 设置

找到 Quality,先 Add Quality Level,将 Name 改成 Quest(名字可以随便取)

然后确保选中的是新添加的 Quality Level,按照如图所示进行设置:

在这里插入图片描述

到这里,Oculus 开发的基础环境配置就结束了。


📕开启手势追踪

找到 Oculus 文件夹的 Oculus Project Config 文件。

在这里插入图片描述

然后打开 Inspector 面板,将 Hand Tracking Support 设为 Controllers And Hands

在这里插入图片描述

Hand Tracking Version 建议设为 V2,因为 Meta 的手势追踪 2.0 版本拥有更好的效果。


📕测试打包

现在我们可以随便打开一个 Oculus 的样例场景,我选择了这个:

在这里插入图片描述

这时候我们可以先在头显和电脑串流的情况下运行这个场景,如果能成功运行,就说明之前的配置是没问题的。

接下来我们测试打包到一体机运行,我们打开编辑器菜单栏的 File -> Build Settings

先 Add Open Scenes,再点击 Build And Run,设置好 APK 在电脑中的保存路径后,耐心等待。

在这里插入图片描述

打包完毕后,带上头显,这时候程序就是以一体机软件的形式运行了,如果运行成功,说明之前的配置没有问题~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/36353.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

信号类型(雷达)——雷达波形认识(一)

系列文章目录 《信号类型(雷达通信)》 文章目录 前言 简述 总结 前言 本文将结合个人研究经验,从雷达波形简单谈谈我对雷达的认识。之后将对常见的雷达波形进行简单分析。 简述 雷达的波形决定了信号处理的手段以及对应的雷达功能&#x…

关于WEB端实现电子海图研究二GeoServer

记笔记,免忘记! 接前面思路篇。本文章主要是讲,利用GeoServer对shp文件进行数据样式调整 ,数据拼接,shp文件发布,矢量切片。 Geoserver官网:GeoServer 可以使用最新版本,我使用的…

边缘计算那些事儿--网络切片技术(1)

0 背景 边缘计算可以支持就近的计算卸载,让数据在靠近数据源的设备上处理。对于边缘计算低时延的应用场景来说,网络性能的好坏,直接影响着卸载算法的整体耗时,决定着整个算法模型的可行性。因此如果想实现低时延卸载算法&#xff…

Go语言入门【7】指针

指针 在go语言中,每一个变量在运行时都会拥有一个地址,这个地址代表的就是变量在内存中的位置,而指针就是指向这个地址的变量。使用go语言中的指针很简单,只需要记住两个关键字符,&(取地址符&#xff…

[附源码]java毕业设计在线二手车交易信息管理系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

【App自动化测试】(九)移动端复杂测试环境模拟——来电、短信、网络切换

目录1. 发送短信2. GSM电话3. 设置模拟信号强弱4. 设置网速5. 设置网络连接类型前言: 本文为在霍格沃兹测试开发学社中学习到的一些技术写出来分享给大家,希望有志同道合的小伙伴可以一起交流技术,一起进步~ 😘 当我们使用模拟器来…

C#重启 --- 类和对象

​​​​​​ 1.类是抽象的,对象是具体的 2.类中有数据成员和方法成员(数据成员是名词性的,方法成员是动词性的) 1.类的关键字是class (变量:首字母小写,方法:首字母大写&#x…

【毕业设计】机器学习的员工离职模型研究-python

目录 前言 课题背景和意义 实现技术思路 变量分析 数据导入 构建机器学习模型 1. 1 复制数据删除不需要的变量 1.2 列变量属性分类 实现效果图样例 前言 📅大四是整个大学期间最忙碌的时光,一边要忙着备考或实习为毕业后面临的就业升学做准备,一边要为毕业设…

Charles证书安装windows11抓包 Https协议

1、Charles 的CA证书 如果需要截取分析 Https 协议相关的内容,那么需要安装 Charles 的 CA 证书,需要在 win11 电脑上安装证书。 2、证书安装路径 点击 Charles 的顶部菜单,选择 “Help” –> “SSL Proxying” –> “Install Charl…

Revit修改:网格角度,体量轮廓,梁随斜板

一、Revit中使幕墙系统网格改变角度 绘制幕墙系统时,若幕墙系统出现如下图情况: 若想改变该网格的角度,使其与该幕墙上下边界平行或垂直则选中该幕墙,修改属性栏的中的网格角度。如下图所示: 修改完所需角度后&#xf…

web网页设计期末课程大作业——汉中印象旅游景点介绍网页设计与实现19页面HTML+CSS+JavaScript

👨‍🎓学生HTML静态网页基础水平制作👩‍🎓,页面排版干净简洁。使用HTMLCSS页面布局设计,web大学生网页设计作业源码,这是一个不错的旅游网页制作,画面精明,排版整洁,内容…

基于FPGA的Hamiton方程--辛几何算法实现(全网唯一)

1、本文实验基于冯康院士的《哈密尔顿系统的辛几何算法》开展,链接:https://pan.baidu.com/s/1GM0Px7SLWBWzh4sXmAdcwg 提取码:fmkt 2、虽然题目写的是基于FPGA的求解,但实际上采用的是VHLS来实现的,最近根本不想写v…

m基于rbf神经网络和遗传算法优化的MIMO-OFDM系统信道估计算法matlab仿真

目录 1.算法描述 2.仿真效果预览 3.MATLAB部分代码预览 4.完整MATLAB程序 1.算法描述 MIMO-OFDM的信道估计:时,频,空三个域都要考虑,尤其是在空域,不同天线发射的导频序列需要相互正交,否则在接收端无法…

使用星凸随机超曲面模型对扩展对象和分组目标进行形状跟踪(Matlab代码实现)

🍒🍒🍒欢迎关注🌈🌈🌈 📝个人主页:我爱Matlab 👍点赞➕评论➕收藏 养成习惯(一键三连)🌻🌻🌻 🍌希…

学习Python要学习哪些课程?

通过学习 Python数据分析与应用课程,可以掌握Python进行科学计算、可视化绘图、数据处理,分析与建模、构建聚类、回归、分类模型的主要方法和技能,并为后续相关课程学习及将来从事数据分析挖掘研究、数据分析工作奠定基础。 Python数据分析与…

进程互斥以及进程互斥实现方法(包含代码)

进程互斥有关概念: 两种资源共享方式: 1.互斥共享:一个时间段内只允许一个进程进行访问 2.同时共享:一个时间段内允许多个进程进行“同时”访问 临界资源:一个时间段内只允许一个进程进行访问的资源 访问临界区的…

第二章 爬虫的实现原理和技术(一)

2.1 爬虫的实现原理 不同类型的爬虫,具体的实现原理也不尽相同,但是这些爬虫之间存在许多共性。下面我将以通用爬虫与聚焦爬虫为例,具体来讲解爬虫是如何来运作的。 通用爬虫的工作原理 通用爬虫是一个自动提取网页的程序,能够从Internet上下载网页,是大多的搜索引擎的…

关于FFmepg的冷知识,这一篇就够了

每一个从事音视频技术开发的工程师对FFmpeg都不会感到陌生,即使是刚刚踏入这个行业的初学者,但对他们来说这条路上好像有着一条不可逾越的鸿沟,“雷神”和许多大神都总结过一些FFmpeg的学习方法,小编在这里为大家做一个整理&#…

《恋上数据结构与算法》第1季:动态数组原理实现(图文并茂,一文带你了解ArrayList底层实现)

动态数组原理实现一、数组(Array)二、动态数组三、动态数组的设计四、动态数组的实现1. 添加元素2. 数组扩容3. 删除元素4. 数组缩容5. 清空元素6. 修改元素7. 查询元素8. 插入元素9. 查看元素位置10. 是否包含某个元素11. 元素的数量12. 数组是否为空13…

win11的C/C++环境配置——基于MinGW-W64 GCC-8.1.0

首先给出MinGW-W64 GCC-8.1.0的下载地址:MinGW8.1.0 Win11下的C/C环境配置下载MinGW-W64 GCC-8.1.0添加bin文件和include文件到path变量中测试下载MinGW-W64 GCC-8.1.0 网页截图如下: 可以复制下载地址到迅雷中加速,下载完成后的文件如下&a…