当前位置: 首页 > news >正文

Unity XR Interaction Toolkit 开发教程(2):导入 SDK【3.0 以上版本】

文章目录

  • 📕课程总结
  • 📕安装 Unity 编辑器与打包模块
  • 📕导入 OpenXR
  • 📕导入 XR Interaction Toolkit
  • 📕打包发布

获取完整课程以及答疑,工程文件下载:
https://www.spatialxr.tech/

视频试看链接:
2.导入 SDK(上):配置 OpenXR【Unity XR Interaction Toolkit 跨平台开发教程】(3.0以上版本)
2.导入 SDK(下):配置 XRI【Unity XR Interaction Toolkit 跨平台开发教程】(3.0以上版本)

系列教程专栏:Unity XR Interaction Toolkit 系列教程(SDK 版本 3.0 以上)

📕课程总结

📕安装 Unity 编辑器与打包模块

在 Unity Hub 中安装一个 Unity 编辑器(推荐 LTS 长期支持的稳定版),并且安装硬件设备对应平台的打包模块(目前市面上大部分 XR 头显都是安卓系统,如 Quest、Pico,需要安装 Android Build Support,只有苹果的头显是 visionOS 系统,需要安装 visionOS Build Support)

本教程中使用的 Unity 版本是 2022.3.20f1,因为考虑到大部分人用的可能还是相对旧一点的版本。如果你能够安装最新的 Unity 6000 LTS 版,也是可以的,后续在配置环境时的兼容性是更好的。

系列教程会选用 Meta Quest 3 进行最终应用的效果展示。

安装完编辑器后就可以创建一个新的 Unity 工程,我选用的渲染管线是 URP,需要使用 Universal 3D 模板。

📕导入 OpenXR

创建 Unity 工程后,在 Unity 编辑器界面菜单栏的 Edit>Project Settings 里安装 XR Plug-in Management,在 PC 端和安卓端勾选 OpenXR

然后在 XR Plug-in Management 下方的 OpenXR 里添加对应设备的交互配置文件 Interaction Profile(PC 端和安卓端都要添加):

因为我开发的是 Meta Quest,我就把 Meta 相关的交互配置文件都进行添加(Meta Quest Touch Pro Controller Profile 和 Oculus Touch Controller Profile)。

然后在下方的 OpenXR Feature Groups 当中勾选 Meta Quest Support(如上图所示)。如果不勾选,打包到 Quest 后会变成一个 2D 窗口应用。

然后在 Project Validation 中如果有看到红色的报错或者黄色的警告,需要点击 Fix All 进行环境配置的修复(PC 端和安卓端都要进行修复)。当列表每一项前方出现绿色的 ✔,就代表环境配置是正确的。

如果 Unity 是 URP 项目,需要移除 URP 配置文件里的 Screen Space Ambient Occlusion 渲染特性。

URP 配置文件默认在项目中的 Assets > Settings 文件夹中:

移除过后,重启 Unity 编辑器,正常来说就不会看到 Project Validation 窗口中的警告了。

📕导入 XR Interaction Toolkit

XR Interaction Toolkit 官方开发者文档:[XR Interaction Toolkit | XR Interaction Toolkit | 3.0.6]

可在文档中选择自己想要查看的版本。

在 Unity 菜单栏 Window > Package Manager 当中先在左上角切换到 Packages: Unity Registry,搜索 XR Interaction Toolkit,查看当前 Unity 版本里默认的 XRI 版本是否是最新的,如果不是,需要在 Unity 的 Package Manager 当中通过包名 com.unity.xr.interaction.toolkit,使用 Add package by name 导入最新版的 XRI

制作本教程时 XR Interaction Toolkit 已经更新到了 3.0.6

将 XRI 进行导入,成功后需要导入 XRI 的样例包(本节课程先导入 Starter Assets 和 XR Device Simulator)

然后确保 Input System 的版本更新到了 1.11.0 以上,如果是旧版,可以在 Unity 的 Package Manager 当中通过包名 com.unity.inputsystem,使用 Add package by name 导入最新版的 Input System

最后在 Project Validation 里进行配置修复。

📕打包发布

可以在 Assets > Samples 中打开官方提供的一个样例场景。

在 Unity 的 File > Build Settings,将需要打包的场景添加到打包列表下(点击 Add Open Scene 能添加当前打开的场景),确保设备开启了开发者模式后,可以将设备与电脑通过 USB 线进行连接,点击 Build and Run 进行打包。

相关文章:

Unity XR Interaction Toolkit 开发教程(2):导入 SDK【3.0 以上版本】

文章目录 📕课程总结📕安装 Unity 编辑器与打包模块📕导入 OpenXR📕导入 XR Interaction Toolkit📕打包发布 获取完整课程以及答疑,工程文件下载: https://www.spatialxr.tech/ 视频试看链接&a…...

element-plus校验单个form对象合法性

在 Vue 中&#xff0c;循环生成的表单列表&#xff0c;并且每个表单中包含多个对象&#xff0c;使用 v-for 来创建这些表单&#xff0c;并且使用动态 prop 路径来验证单个对象是否满足必填校验。 <template><el-form ref"formRef" :model"form" …...

Linux常见命令合集

目录 1.ls 列出指定目录下的文件和和文件夹 2.cd change directory 切换目录 3. cat 查看文件 4.more 分屏查看文件 5.tail从后往前查看指定文件 6.mkdir 创建目录 7.rm强制删除指定目录和文件 8.cp复制文件和目录 9.mv移动和重命名命令 10.tar命令打包和拆包 重点是…...

__init__.py __all__和 __name__的作用及其用法

__ init__.py 的作用及其用法&#xff1a; 包下的__init__.py 所在目录是一个模块包,本身也是一个模块,可用于定义模糊导入时要导入的内容。当我们导入一个包的时候&#xff0c;包下的__init__.py中的代码会自动执行&#xff0c;因此在某些大的项目被使用频率较高的模块&#x…...

js操作数组的方法 / js操作字符串的方法

操纵数组的方法 常见的有10种 push() -在数组末尾添加一个或多个元素&#xff0c;并返回新的长度。 pop() -删除数组的最后一个元素&#xff0c;并返回那个元素。 shift() -删除数组的第一个元素&#xff0c;并返回那个元素。 unshift() -在数组的开始添加一个或多个元素&…...

Docker 部署RocketMQ

FROM: Docker安装RocketMQ教程_docker 安装rocketmq-CSDN博客...

Linux(Cent OS)环境离线安装mkfontscale mkfontdir命令 解决java项目在linux系统下无法获取中文字体问题

https://download.csdn.net/download/mlc19860417/89938093 1 附件下载 1.libfontenc-1.1.3-3.amzn2.0.2.x86_64.rpm 2.libXfont-1.5.2-1.amzn2.0.2.x86_64.rpm 3.xorg-x11-font-utils-7.5-20.amzn2.0.2.x86_64.rpm 4.fontpackages-filesystem-1.44-8.amzn2.noarch.rpm 5.sti…...

计算堆栈中的剩余数字

更多关于刷题的内容欢迎订阅我的专栏华为刷题笔记 该专栏题目包含两部分&#xff1a; 100 分值部分题目 200 分值部分题目 所有题目都会陆续更新&#xff0c;订阅防丢失 题目描述&#xff1a; 向一个空栈中依次存入正整数&#xff0c; 假设入栈元素 n ( 1 < n < 2…...

笔记:mysql升级 5.6至5.7

说明 一台已有数据的机器&#xff0c;停机升级&#xff0c;从MySQL Server5.6.48&#xff0c;升级到 5.7.38。 环境介绍 10.24.10.247&#xff0c;Mysql 5.6.48 CentOS Linux release 7.9.2009 (Core) 32G内存、500G数据盘/home&#xff1b; 实际数据量约120M&#xff0c;2个…...

前端的全栈Deno篇(五):与前端保持一致的模块化方案,摆脱ERR_REQUIRE_ESM和mjs、cjs等模块混乱带来的心智负担

在现代JavaScript开发中&#xff0c;模块化系统的演变经历了多次变革&#xff0c;使得前端和后端开发人员在选择模块加载方式时常常感到困惑。尤其是Node.js所采用的CommonJS和ESM&#xff08;ECMAScript Modules&#xff09;两种模块体系&#xff0c;以及文件扩展名的多样性&a…...

与外部公司做数据交互时,需要注意哪些事情?

在现代企业系统中&#xff0c;数据交互已成为日常业务流程的核心部分。与外部公司进行数据交换可以带来业务合作和资源共享的机会&#xff0c;但也带来了数据安全、协议兼容性、合规性等方面的挑战。本文将深入探讨在与外部公司进行数据交互时需要关注的关键事项&#xff0c;并…...

基于hive分析Flask为后端框架echarts为前端框架的招聘网站可视化大屏项目

基于hive分析Flask为后端框架echarts为前端框架的招聘网站可视化大屏项目 1. 项目概述 项目目标是构建一个大数据分析系统&#xff0c;包含以下核心模块&#xff1a; 1、数据爬取&#xff1a;通过request请求获取猎聘网的就业数据。 2、数据存储和分析&#xff1a;使用 Hive …...

Ansible 部署应用

Ansible Ansible 是基于 Python 开发&#xff0c;集合了众多优秀运维工具的优点&#xff0c;实现了批量运行命令、部署程序、配置系统等功能的自动化运维管理工具。默认通过 SSH 协议进行远程命令执行或下发配置&#xff0c;无需部署任何客户端代理软件&#xff0c;从而使得自动…...

使用Docker Swarm进行集群管理

&#x1f493; 博客主页&#xff1a;瑕疵的CSDN主页 &#x1f4dd; Gitee主页&#xff1a;瑕疵的gitee主页 ⏩ 文章专栏&#xff1a;《热点资讯》 使用Docker Swarm进行集群管理 Docker Swarm简介 安装Docker 在Ubuntu上安装Docker 在CentOS上安装Docker 在macOS上安装Docker …...

基于树莓派的安保巡逻机器人--(一、快速人脸录入与精准人脸识别)

目录 零、前言 一、人脸检测 二、人脸识别 1、采集人脸 2、训练人脸识别模型 3、人脸识别应用 零、前言 随着智能安防需求的增长&#xff0c;基于人工智能和物联网的安保系统逐渐成为趋势。树莓派因其低成本、高扩展性等特点&#xff0c;成为很多AI项目的理想平台。本文将为大…...

中间件的应用

控制器 <?phpnamespace App\Http\Controllers;use Illuminate\Http\Request;class AgeController extends Controller {//public function index(){return "年龄测试";} }路由 // 年龄控制器路由 Route::get("d2/{age}",[AgeController::class,&quo…...

真题与解析 202206二级 青少年软件编程(Python)考级

青少年软件编程(Python)等级考试试卷(二级) 202206真题与解析 分数:100 题数:37 测试时长:60分钟</...

ChatGPT新体验:AI搜索功能与订阅支付指南

就在凌晨&#xff0c;在ChatGPT迎来两周岁生日之际&#xff0c;OpenAI重磅发布了ChatGPT的全新人工智能搜索体验。 期待已久的时刻终于到来&#xff0c; ChatGPT正式转型成为一款革命性的AI搜索引擎! 先来看看ChatGPT搜索&#xff1a;这次不是简单的加个搜索框&#xff0c;而…...

【植物识别】Python+深度学习+人工智能+CNN卷积神经网络+算法模型训练+TensorFlow

一、介绍 植物识别系统&#xff0c;使用Python作为主要编程语言开发&#xff0c;通过收集常见的6中植物树叶&#xff08;‘广玉兰’, ‘杜鹃’, ‘梧桐’, ‘樟叶’, ‘芭蕉’, ‘银杏’&#xff09;图片作为数据集&#xff0c;然后使用TensorFlow搭建ResNet50算法网络模型&am…...

快讯,Flutter PC 多窗口新进展,已在 Ubuntu/Canonical 展示

相信 Flutter 开发者对于 Flutter PC 多窗口的支持一直是「望眼欲穿」&#xff0c;而根据 #142845 相关内容展示&#xff0c; 在上月 27 号的 Ubuntu 峰会&#xff0c;Flutter 展示了多窗口相关进展。 事实上 Ubuntu 和 Flutter 的进一步合作关系应该是在 2021 年就开始了&…...

内存分配函数malloc kmalloc vmalloc

内存分配函数malloc kmalloc vmalloc malloc实现步骤: 1)请求大小调整:首先,malloc 需要调整用户请求的大小,以适应内部数据结构(例如,可能需要存储额外的元数据)。通常,这包括对齐调整,确保分配的内存地址满足特定硬件要求(如对齐到8字节或16字节边界)。 2)空闲…...

【人工智能】神经网络的优化器optimizer(二):Adagrad自适应学习率优化器

一.自适应梯度算法Adagrad概述 Adagrad&#xff08;Adaptive Gradient Algorithm&#xff09;是一种自适应学习率的优化算法&#xff0c;由Duchi等人在2011年提出。其核心思想是针对不同参数自动调整学习率&#xff0c;适合处理稀疏数据和不同参数梯度差异较大的场景。Adagrad通…...

边缘计算医疗风险自查APP开发方案

核心目标:在便携设备(智能手表/家用检测仪)部署轻量化疾病预测模型,实现低延迟、隐私安全的实时健康风险评估。 一、技术架构设计 #mermaid-svg-iuNaeeLK2YoFKfao {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg…...

23-Oracle 23 ai 区块链表(Blockchain Table)

小伙伴有没有在金融强合规的领域中遇见&#xff0c;必须要保持数据不可变&#xff0c;管理员都无法修改和留痕的要求。比如医疗的电子病历中&#xff0c;影像检查检验结果不可篡改行的&#xff0c;药品追溯过程中数据只可插入无法删除的特性需求&#xff1b;登录日志、修改日志…...

转转集团旗下首家二手多品类循环仓店“超级转转”开业

6月9日&#xff0c;国内领先的循环经济企业转转集团旗下首家二手多品类循环仓店“超级转转”正式开业。 转转集团创始人兼CEO黄炜、转转循环时尚发起人朱珠、转转集团COO兼红布林CEO胡伟琨、王府井集团副总裁祝捷等出席了开业剪彩仪式。 据「TMT星球」了解&#xff0c;“超级…...

基础测试工具使用经验

背景 vtune&#xff0c;perf, nsight system等基础测试工具&#xff0c;都是用过的&#xff0c;但是没有记录&#xff0c;都逐渐忘了。所以写这篇博客总结记录一下&#xff0c;只要以后发现新的用法&#xff0c;就记得来编辑补充一下 perf 比较基础的用法&#xff1a; 先改这…...

页面渲染流程与性能优化

页面渲染流程与性能优化详解&#xff08;完整版&#xff09; 一、现代浏览器渲染流程&#xff08;详细说明&#xff09; 1. 构建DOM树 浏览器接收到HTML文档后&#xff0c;会逐步解析并构建DOM&#xff08;Document Object Model&#xff09;树。具体过程如下&#xff1a; (…...

基于Docker Compose部署Java微服务项目

一. 创建根项目 根项目&#xff08;父项目&#xff09;主要用于依赖管理 一些需要注意的点&#xff1a; 打包方式需要为 pom<modules>里需要注册子模块不要引入maven的打包插件&#xff0c;否则打包时会出问题 <?xml version"1.0" encoding"UTF-8…...

大语言模型(LLM)中的KV缓存压缩与动态稀疏注意力机制设计

随着大语言模型&#xff08;LLM&#xff09;参数规模的增长&#xff0c;推理阶段的内存占用和计算复杂度成为核心挑战。传统注意力机制的计算复杂度随序列长度呈二次方增长&#xff0c;而KV缓存的内存消耗可能高达数十GB&#xff08;例如Llama2-7B处理100K token时需50GB内存&a…...

宇树科技,改名了!

提到国内具身智能和机器人领域的代表企业&#xff0c;那宇树科技&#xff08;Unitree&#xff09;必须名列其榜。 最近&#xff0c;宇树科技的一项新变动消息在业界引发了不少关注和讨论&#xff0c;即&#xff1a; 宇树向其合作伙伴发布了一封公司名称变更函称&#xff0c;因…...