XR Interaction ToolKit
一、简介
XR Interaction Toolkit是unity官方的XR交互工具包。
官方XRI示例地址:https://github.com/Unity-Technologies/XR-Interaction-Toolkit-Examples
2023.3.14官方博客,XRIT v2.3
https://blog.unity.com/engine-platform/whats-new-in-xr-interaction-toolkit-2-3
注:本文基于Unity2021.3.29f1。
二、包安装
1) XR Plugin Management
每一个平台有对应的厂商SDK, 先安装XR插件管理器,更方便安装对应的平台SDK。

安装完后,会自动在Assets下创建XR/XRGeneralSettingsPerBuildTarget.asset文件。

此文件会包含当前Unity默认平台Providers和Settings。

如果不小心误删了该文件或者XR文件夹,Project Settings面板点击XR Plug-in Management条目则会自动生成。

如果想添加其他平台到PerBuildTarget,则在XR Plug-in management面板点击对应平台图标。
注意:只有Unity添加过platform的才可以添加。
2) Open XR
官方文档:https://docs.unity3d.com/Packages/com.unity.xr.openxr@1.8/manual/index.html
我们可以通过1)中安装的XR Plugin Management进行安装,或者通过PackageManager进行安装。

OpenXR包会自动创建Loaders和Settings。XR插件管理器下会出现其分页。

点击Fix All对这两个Warning项进行验证修复。
- 使用InputSystem.XR.PoseControl代替OpenXR.Input.PoseControl,后者将来会被弃用。
- 至少一个Interaction Profile必须被添加,请在Features菜单选择要测试的控制器。

项目需要哪些Feature,则勾选对应功能。
问号图标可查看文档。齿轮图标可进行功能的参数设置。- D-Pad Binding:方向键绑定。
- Hand Interaction Poses:手部交互姿势。
- Mock Runtime:模拟运行时。
- Palm Pose:手掌姿势。
- Runtime Debugger:运行时调试器。
3) XR Interaction Toolkit

XR Interaction Toolkit包会自动创建XRI文件夹,Settings文件夹包含一个XRInteractionEditorSettings.asset文件和一个Resources文件夹。
后者中包含InteractionLayerSettings.asset文件,可以设置交互层的名称,用于继承自XRBaseInteractable基类的InteractionLayerMask设置,比如我们的grab、click、hold等业务行为;
包含XRDeviceSimulatorSettings.asset,勾选或反选决定是否在场景中使用XR设备模拟器。如果Samples中的XR Device Simulator包未安装,勾选Use XR Device Simulator in scenes则会安装该包。

- Starter Assets:初始资产。
- XR Device Simulator:XR设备模拟器。
- Tunneling Vignette:隧道片段。
- Meta Gaze Adapter:Meta凝视适配器。
- Hands Interaction Demo:手部交互Demo。
三、Samples学习
1) Starter Assets

InteractionColorAffordanceTheme:交互颜色营造主题。
默认有7个交互颜色,均包含有Animation State Start Value和Animation State End Value。
Prefabs文件夹下的预制件可以复用官方的。

XRI Default Input Actions.inputactions:XR交互默认输入动作。
Assets下右键Create → Input Actions可创建该类型的文件。
- Actions Maps:动作集合。
- Actions:定义的各种动作。
- Action Properties:动作的属性。
- Action:Action Type、Control Type
- Interactions:Hold、Press、Slow Tap、Tap
- Processors:Invert Vector3、Normalize Vector3、Scale Vector3
- Binding Properties:绑定的属性。
- Binding
- Interactions:Hold、Press、Slow Tap、Tap
- Processors:Invert Vector3、Normalize Vector3、Scale Vector3
- Action Properties:动作的属性。
- Actions:定义的各种动作。

定义好Aciton之后,展开该文件,前面的是Action Maps名称,后面的是Actions名称。

这些文件称为:预设。
这些默认预设是XR交互动作的预设,使用我们在inputactions文件中定义的Action绑定到预设。
预设在Inspector面板顶部可以Add/Remove to xxx default,即设置为xxx的默认类型或者移除默认。
查看官方文档学习如何创建、应用、部分应用、编辑、导出预设。
https://docs.unity3d.com/cn/2021.3/Manual/Presets.html#:~:text=单击 Inspector 窗口右上角的预设选择器(滑动条图标)。 在 Select Preset 窗口中,单击 Save,。 显示一个 File Save 对话框。 选择新预设的位置,输入其名称,然后单击 Save 。
2) XR Device Simulator

把XR Device Simulator预制件放入Starter ASsets文件夹下的DemoScene场景。

运行程序。左下角的XR Device Simulator面板可以模拟HDM和Hand Controller。
方便无设备时的模拟测试。
- 鼠标右键旋转
- 键盘G键 → 手柄的Trigger键
- 通过Tab键或后面标识的按键切换XR Input Methods
相关文章:
XR Interaction ToolKit
一、简介 XR Interaction Toolkit是unity官方的XR交互工具包。 官方XRI示例地址:https://github.com/Unity-Technologies/XR-Interaction-Toolkit-Examples 2023.3.14官方博客,XRIT v2.3 https://blog.unity.com/engine-platform/whats-new-in-xr-int…...
spring-boot中实现分片上传文件
一、上传文件基本实现 1、前端效果图展示,这里使用element-ui plus来展示样式效果 2、基础代码如下 <template><div><el-uploadref"uploadRef"class"upload-demo":limit"1":on-change"handleExceed":auto-…...
【ICN综述】信息中心网络隐私安全
ICN基本原理: 信息中心网络也是需要实现在不可信环境下可靠的信息交换和身份认证 信息中心网络采用以数据内容为中心的传输方式代替现有IP 网络中以主机为中心的通信方式,淡化信息数据物理或逻辑位置的重要性,以内容标识为代表实现数据的查找…...
基于STC12C5A60S2系列1T 8051单片机EEPROM应用
基于STC12C5A60S2系列1T 8051单片机EEPROM应用 STC12C5A60S2系列1T 8051单片机管脚图STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式及配置STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式介绍STC12C5A60S2系列1T 8051单片机EEPROM介绍基于STC12C5A60S2系列1T 8051单…...
手撕排序之直接选择排序
前言: 直接选择排序是排序中比较简单的排序,同时也是时间复杂度不是很优的排序。 思想: 本文主要讲解直接选择排序的优化版本。 我们经过一次遍历直接将该数列中最大的和最小的值挑选出来,如果是升序,就将最小的和…...
洛谷 P1359 租用游艇
题目链接 P1359 租用游艇 普及 题目描述 长江游艇俱乐部在长江上设置了 n n n 个游艇出租站 1 , 2 , 3 , . . . , n 1,2,3,...,n 1,2,3,...,n,游客可在这些游艇出租站租用游艇,并在下游的任何一个游艇出租站归还游艇。游艇出租站 i i i 到游艇出租站…...
springboot中没有主清单属性解决办法
在执行一个 spring boot 启动类时,提示 没有主清单属性 一般这个问题是没加 spring-boot-maven-plugin 插件的问题,但是项目中已经加了 <build><plugins><plugin><groupId>org.springframework.boot</groupId><artifa…...
C/C++ static关键字详解(最全解析,static是什么,static如何使用,static的常考面试题)
目录 一、前言 二、static关键字是什么? 三、static关键字修饰的对象是什么? 四、C 语言中的 static 🍎static的C用法 🍉static的重点概念 🍐static修饰局部变量 💦static在修饰局部变量和函数的作用 &a…...
windwos10搭建我的世界服务器,并通过内网穿透实现联机游戏Minecraft
文章目录 1. Java环境搭建2.安装我的世界Minecraft服务3. 启动我的世界服务4.局域网测试连接我的世界服务器5. 安装cpolar内网穿透6. 创建隧道映射内网端口7. 测试公网远程联机8. 配置固定TCP端口地址8.1 保留一个固定tcp地址8.2 配置固定tcp地址 9. 使用固定公网地址远程联机 …...
【实战Flask API项目指南】之七 用JWT进行用户认证与授权
实战Flask API项目指南之 用JWT进行用户认证与授权 本系列文章将带你深入探索实战Flask API项目指南,通过跟随小菜的学习之旅,你将逐步掌握 Flask 在实际项目中的应用。让我们一起踏上这个精彩的学习之旅吧! 前言 当小菜踏入Flask后端开发…...
鸿蒙LiteOs读源码教程+向LiteOS中添加一个简单的基于线程运行时的短作业优先调度策略
【⭐据说点赞收藏的都会收获好运哦👍】 一、鸿蒙Liteos读源码教程 鸿蒙的源码是放在openharmony文件夹下,openharmony下的kernel文件夹存放操作系统内核的相关代码和实现。 内核是操作系统的核心部分,所以像负责:资源管理、任…...
axios的使用与封装详细教程
目录 一、axios使用方式二、axios在main.js配置 一、axios使用方式 在 Spring Boot Vue 的项目中使用 Axios,你需要在 Vue 项目中安装 Axios 库,因为 Axios 是一个前端 JavaScript 库,用于发送 HTTP 请求和处理响应数据,而与 Sp…...
C++二叉搜索树
本章主要是二叉树的进阶部分,学习搜索二叉树可以更好理解后面的map和set的特性。 1.二叉搜索树概念 二叉搜索树的递归定义为:非空左子树所有元素都小于根节点的值,非空右子树所有元素都大于根节点的值,而左右子树也是二叉搜索树…...
elasticsearch索引按日期拆分
1.索引拆分原因 如果单个索引数据量过大会导致搜索变慢,而且不方便清理历史数据。 例如日志数据每天量很大,而且需要定期清理以往日志数据。例如原索引为sc_all_system_log,现按天拆分索引sc_all_system_log20220902,sc_all_syste…...
纯python实现大漠图色功能
大漠图色是一种自动化测试工具,可以用于识别屏幕上的图像并执行相应的操作。在Python中,可以使用第三方库pyautogui来实现大漠图色功能。具体步骤如下: 安装pyautogui库:在命令行中输入pip install pyautogui。导入pyautogui库&a…...
debounce and throtlle
debounce // 核心:单位时间内触发>1 则只执行最后一次。//excutioner 可以认为是执行器。执行器存在则清空,再赋值新的执行器。function debounce(fn, delay 500) {let excutioner null;return function () {let context this;let args arguments…...
四、数据库系统
数据库系统(Database System),是由数据库及其管理软件组成的系统。数据库系统是为适应数据处理的需要而发展起来的一种较为理想的数据处理系统,也是一个为实际可运行的存储、维护和应用系统提供数据的软件系统,是存储介…...
Linux中的高级IO
文章目录 1.IO1.1基本介绍1.2基础io的低效性1.3如何提高IO效率1.4五种IO模型1.5非阻塞模式的设置 2.IO多路转接之Select2.1函数的基本了解2.2fd_set理解2.3完整例子代码(会在代码中进行讲解)2.4优缺点 3.多路转接之poll3.1poll函数的介绍3.2poll服务器3.…...
项目管理之如何估算项目工作成本
在项目管理中,如何估算项目工作成本是一个关键问题。为了解决这个问题,我们可以采用自上而下的成本限额估算法和自下而上的成本汇总估算法。这两种方法各有优缺点,但都可以帮助我们准确地估算项目工作成本。 自上而下的成本限额估算法 自上…...
Redis主从复制基础概念
Redis主从复制:提高数据可用性和性能的策略 一、概述 Redis主从复制是一种常用的高可用性策略,通过将数据从一个Redis服务器复制到另一个或多个Redis服务器上,以提高数据的可用性和读取性能。当主服务器出现故障时,可以快速地切…...
三步解决华硕笔记本性能优化难题:G-Helper全方位调控指南
三步解决华硕笔记本性能优化难题:G-Helper全方位调控指南 【免费下载链接】g-helper Lightweight, open-source control tool for ASUS laptops and ROG Ally. Manage performance modes, fans, GPU, battery, and RGB lighting across Zephyrus, Flow, TUF, Strix,…...
最强30B模型GLM-4.7-Flash实测:Ollama一键部署,小白也能玩转AI
最强30B模型GLM-4.7-Flash实测:Ollama一键部署,小白也能玩转AI 1. GLM-4.7-Flash模型概述 1.1 模型特点与优势 GLM-4.7-Flash是当前30B参数级别中最具竞争力的混合专家模型(MoE)。这个规模特别适合需要平衡性能与资源消耗的实际…...
Linux使用详解(进阶篇)
文章目录Linux使用详解(进阶篇)1.Linux目录说明2.操作防火墙3.ulimit命令和history命令4.RPM和Yum的使用5.设置系统字符集6.vi & vim编辑器7.文件同步、复制8.利用SCP命令进行文件传输Linux使用详解(进阶篇) 1.Linux目录说明 bin -> usr/bin 这个目录存放的是ÿ…...
SDMatte抠图效果实测:半透明容器边缘锐度、发丝细节、背景分离精度展示
SDMatte抠图效果实测:半透明容器边缘锐度、发丝细节、背景分离精度展示 1. 效果概览 SDMatte作为一款专业级AI抠图工具,在复杂边缘处理和透明物体提取方面表现出色。本次实测将重点展示三个核心能力: 半透明容器边缘锐度:玻璃杯…...
Wan2.2-I2V-A14B企业知识库联动:从内部文档自动生成培训视频
Wan2.2-I2V-A14B企业知识库联动:从内部文档自动生成培训视频 1. 企业知识管理的新范式 在当今快节奏的商业环境中,企业知识管理正面临前所未有的挑战。传统文档形式的培训材料往往存在几个痛点: 更新不及时导致信息滞后员工学习效率低下知…...
卡证检测矫正模型Web界面使用教程:中文操作+实时结果可视化
卡证检测矫正模型Web界面使用教程:中文操作实时结果可视化 你是不是经常需要处理身份证、护照、驾照这些卡证图片?比如要上传证件照办业务,或者批量处理一堆证件材料。最头疼的就是拍出来的照片歪歪扭扭,背景杂乱,还得…...
008.S3C2440中断分析|千篇笔记实现嵌入式全栈/裸机篇
1. 流程 S3C2440中断流程如下, 发生中断时,[SUB]SRCPND源挂起寄存器对应的bit位会置位, 然后[SUB]MASK屏蔽寄存器对应的bit位会卡一下,决定中断流要不要继续, 也就是说不管中断有没有被屏蔽,源挂起寄存…...
VibeVoice语音合成系统效果展示:专业配音级语音频谱图分析
VibeVoice语音合成系统效果展示:专业配音级语音频谱图分析 1. 语音合成技术的新突破 你有没有想过,现在的AI语音合成已经能做到多逼真?不再是那种机械的、冰冷的机器人声音,而是真正像专业配音演员录制的高质量语音。VibeVoice语…...
FanControl终极指南:3步打造电脑风扇智能控制系统
FanControl终极指南:3步打造电脑风扇智能控制系统 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode.com/GitHub_Trending/fa/Fan…...
用Python给双足机器人做个“不倒翁”大脑:线性倒立摆仿真入门(附完整代码)
用Python给双足机器人做个“不倒翁”大脑:线性倒立摆仿真入门(附完整代码) 当你在公园里看到小朋友玩不倒翁时,有没有想过双足机器人也需要类似的"不倒"能力?线性倒立摆模型(LIPM)就是…...
