<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>XR Interaction Toolkit on XR技术研习社</title><link>https://www.xrstudy.net/tags/xr-interaction-toolkit/</link><description>Recent content in XR Interaction Toolkit on XR技术研习社</description><generator>Hugo</generator><language>zh-cn</language><lastBuildDate>Mon, 22 Dec 2025 11:50:00 +0800</lastBuildDate><atom:link href="https://www.xrstudy.net/tags/xr-interaction-toolkit/index.xml" rel="self" type="application/rss+xml"/><item><title>4 种安装特定版本 Package 的方法</title><link>https://www.xrstudy.net/posts/unity-package-specific-version/</link><pubDate>Mon, 22 Dec 2025 11:50:00 +0800</pubDate><guid>https://www.xrstudy.net/posts/unity-package-specific-version/</guid><description>&lt;h2 id="引言"&gt;引言&lt;/h2&gt;&#10;&lt;p&gt;在 Unity 项目的开发生命周期中，工具版本的确定性往往比追求最新更为重要。然而，在实际的工程实践中，开发者面临的需求远比「使用最新版本」复杂得多，包括但不仅限于以下情境：&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;团队协作对齐&lt;/strong&gt;：为了确保所有成员的代码表现一致，必须严格锁定所有 Package 的版本号。&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;老旧项目维护&lt;/strong&gt;：接手或复现一个两年前的项目时，新版 Package 往往会导致兼容性报错，比如 XRI 2.x 升级到 3.x 的架构断层、API 结构不兼容等。当老项目架构对旧版本 Package 开发依赖严重时，此时回退到旧版本往往是更高效的解决方案。&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;特定环境复现&lt;/strong&gt;：跟随特定的技术教程学习时（如 XR Interaction Toolkit、ARFoundation 课程），必须使用与之严格匹配的工具版本，才能得到更好的沉浸式学习体验——版本差异会因为命令路径、界面布局的不一致，而导致学习进程的中断。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;对于需要在线安装管理的工具包（比如 Interaction Toolkit、ARFoundation 等），Package Manager 的默认策略通常是推荐当前可用的「最新版」。而安装指定版本的 Package 相对比较有挑战性，因为这些工具包通常不提供离线下载文件，所以我们需要掌握在 Package Manager 中安装特定版本的技巧。&lt;/p&gt;&#10;&lt;h3 id="适用范围说明"&gt;适用范围说明&lt;/h3&gt;&#10;&lt;p&gt;本文讨论的对象是通过 Package Manager 在线安装的工具包 Package（UPM），并非传统意义上的资源包（&lt;code&gt;.unitypackage&lt;/code&gt;）。后续也将会使用 Package 指代前者。&lt;/p&gt;&#10;&lt;p&gt;此外，部分第三方厂商（如 PICO、Meta 等）提供的 SDK 通常支持离线安装方式，可直接从官方渠道获取历史版本，故不在本文讨论范围内。&lt;/p&gt;&#10;&lt;h2 id="四种方法"&gt;四种方法&lt;/h2&gt;&#10;&lt;h3 id="方法零通过详情页历史版本安装"&gt;方法零：通过详情页历史版本安装&lt;/h3&gt;&#10;&lt;p&gt;在尝试复杂方法前，可先检查 Unity 原生提供的历史列表，在这里 Unity 会提供几个推荐的稳定版本。&lt;/p&gt;&#10;&lt;h4 id="操作步骤以-unity-2022-为例"&gt;操作步骤（以 Unity 2022 为例）&lt;/h4&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;在 Package Manager 中选择目标 Package。&lt;/li&gt;&#10;&lt;li&gt;在右侧详情页点击 Version History 选项卡。&lt;/li&gt;&#10;&lt;li&gt;如果目标版本在列表中，直接点击右下角的 Update to x.x.x。&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;&lt;img src="https://www.xrstudy.net/images/posts/unity-package-specific-version/01-version-history-tab.png" alt="Package Manager 的 Version History 选项卡，XRI 3.1.2 已安装，2.6.5 显示为 Recommended 并带 Update 按钮"&gt;&lt;/p&gt;</description></item><item><title>Interaction Toolkit 新版模拟器快捷键</title><link>https://www.xrstudy.net/posts/xri-simulator-hotkeys/</link><pubDate>Tue, 15 Apr 2025 17:45:00 +0800</pubDate><guid>https://www.xrstudy.net/posts/xri-simulator-hotkeys/</guid><description>&lt;h2 id="引言"&gt;引言&lt;/h2&gt;&#10;&lt;p&gt;在新版 Interaction Toolkit 中，对 XR 模拟器进行了比较大的更新，本文将介绍其中常用的快捷键。&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="https://www.xrstudy.net/images/posts/xri-simulator-hotkeys/01-simulator-overview-panel.png" alt="XR Interaction Simulator 的 Input Selection 面板：左侧 Full Body 与控制器/手部模态切换，右侧是旋转与平移的方向键提示"&gt;&lt;/p&gt;&#10;&lt;h2 id="基本操作快捷键"&gt;基本操作快捷键&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Tab - 在控制器模式和 Full Body 全身控制模式之间切换&lt;/li&gt;&#10;&lt;li&gt;Y - 展开/折叠左下角的 UI 主菜单&lt;/li&gt;&#10;&lt;li&gt;X - 当切换到手柄控制器或手部时，可展开顶部二级菜单&lt;/li&gt;&#10;&lt;li&gt;R - 重置所有部件回到初始状态&lt;/li&gt;&#10;&lt;li&gt;W/A/S/D - 向前/左/后/右移动选中的部件&lt;/li&gt;&#10;&lt;li&gt;Q/E - 上下移动选中的部件&lt;/li&gt;&#10;&lt;li&gt;方向键 - 旋转所选部件&lt;/li&gt;&#10;&lt;li&gt;鼠标右键（按住）- 对当前选中的部件进行旋转&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="控制器手部模拟快捷键"&gt;控制器/手部模拟快捷键&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;左中括号 [ - 选择并控制左手手柄/左手，重复按下可在手柄和手部之间切换&lt;/li&gt;&#10;&lt;li&gt;右中括号 ] - 选择并控制右手手柄/右手，重复按下可在手柄和手部之间切换&lt;/li&gt;&#10;&lt;li&gt;Shift +（快捷键）- 对左手发出动作时的组合键，需要先按住 Shift 然后结合其他快捷键&lt;/li&gt;&#10;&lt;li&gt;T - 模拟按下 Trigger 键&lt;/li&gt;&#10;&lt;li&gt;G - 模拟抓取（Grip）&lt;/li&gt;&#10;&lt;li&gt;1/2 - 模拟手柄控制器上的右手控制器 A 键、B 键或左手控制器 X、Y 键&lt;/li&gt;&#10;&lt;li&gt;空格键 - 用于持续（保持）发出动作，按下 Space 切换 Press/Release 状态&lt;/li&gt;&#10;&lt;li&gt;`（波浪键/反引号键）- 循环切换 Space 键要控制的动作（Trigger、Grip、Primary、Secondary）&lt;/li&gt;&#10;&lt;li&gt;I/J/K/L - 用于模拟摇杆输入：I（向前/瞬移），J（向左转身），K（向后），L（向右转身）&lt;/li&gt;&#10;&lt;li&gt;M - 手部捏合动作（Pinch）&lt;/li&gt;&#10;&lt;li&gt;K - 手部抓取动作（Grab）&lt;/li&gt;&#10;&lt;li&gt;N - 手部戳点动作（Poke）&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;&lt;img src="https://www.xrstudy.net/images/posts/xri-simulator-hotkeys/02-controller-actions-panel.png" alt="Controller Actions 面板：Trigger/Grip/Primary/Secondary 四个动作的按键映射，摇杆 I/J/K/L，底部是 Space 保持动作与反引号循环切换"&gt;&lt;/p&gt;</description></item><item><title>Interaction Toolkit 跳跃功能详解</title><link>https://www.xrstudy.net/posts/xri-jump-provider/</link><pubDate>Wed, 09 Apr 2025 18:00:00 +0800</pubDate><guid>https://www.xrstudy.net/posts/xri-jump-provider/</guid><description>&lt;h2 id="本文主要内容"&gt;本文主要内容&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;介绍实现跳跃功能的 Jump Provider 组件&lt;/li&gt;&#10;&lt;li&gt;如何禁用跳跃功能&lt;/li&gt;&#10;&lt;li&gt;如何将跳跃功能绑定到其他按键上&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="跳跃功能概述"&gt;跳跃功能概述&lt;/h2&gt;&#10;&lt;p&gt;在 Interaction Toolkit 新版本中，如果使用新版本中的 XR Origin 预制体进行场景初始化，跳跃功能会默认集成在预制体中，开发者无需手动实现，程序运行时，通过点击右手手柄控制器的 A 键即可实现跳跃。&lt;/p&gt;&#10;&lt;h2 id="跳跃功能的实现结构"&gt;跳跃功能的实现结构&lt;/h2&gt;&#10;&lt;p&gt;要了解 Interaction Toolkit 中跳跃功能的实现，首先需要了解相关游戏对象的结构。&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="https://www.xrstudy.net/images/posts/xri-jump-provider/01-xr-origin-locomotion-hierarchy.png" alt="XR Origin 下的 Locomotion 节点，Turn、Move、Grab Move、Teleportation、Climb、Gravity、Jump 都是它的子物体"&gt;&lt;/p&gt;&#10;&lt;p&gt;在游戏对象 XR Origin 下的 Locomotion 中，包含了一个名为 Jump 的子物体，在其上挂载了一个名为 Jump Provider 的组件，这是实现跳跃功能的主要组件。值得注意的是，跳跃功能并不仅凭 Jump Provider 实现，在 Interaction Toolkit 的移动架构中，各种移动形式不仅需要各自的 Provider，还需要一个全局管理角色 Locomotion Mediator 来管理协调不同的移动方式。&lt;/p&gt;&#10;&lt;h2 id="如何禁用跳跃功能"&gt;如何禁用跳跃功能&lt;/h2&gt;&#10;&lt;p&gt;并非所有 VR 项目都需要跳跃功能，而默认情况下跳跃功能占用了右手控制器的 A 键。如果项目不需要跳跃或者需要在 A 键上实现其他功能，此时在 Hierarchy 窗口中将 Jump 子物体隐藏即可禁用跳跃功能。&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="https://www.xrstudy.net/images/posts/xri-jump-provider/02-jump-gameobject.png" alt="Hierarchy 中的 Jump 子物体，Inspector 里可以看到它挂的是 Jump Provider 组件"&gt;&lt;/p&gt;</description></item><item><title>Interaction Toolkit 空间键盘（Spatial Keyboard）功能的实现</title><link>https://www.xrstudy.net/posts/xri-spatial-keyboard/</link><pubDate>Sun, 23 Mar 2025 17:04:00 +0800</pubDate><guid>https://www.xrstudy.net/posts/xri-spatial-keyboard/</guid><description>&lt;p&gt;在 VR 应用开发中，文本输入是一个常见需求，而 Unity 的 Interaction Toolkit 提供了空间键盘功能，使开发者能够快速实现这一功能。本文将详细介绍如何在 Unity XR 项目中实现两种形态的空间键盘：全局空间键盘和世界空间键盘。&lt;/p&gt;&#10;&lt;h2 id="准备工作"&gt;准备工作&lt;/h2&gt;&#10;&lt;p&gt;在开始实现空间键盘功能前，需要先导入相关资源包并解决依赖问题。&lt;/p&gt;&#10;&lt;h3 id="导入-spatial-keyboard-资源包"&gt;导入 Spatial Keyboard 资源包&lt;/h3&gt;&#10;&lt;p&gt;首先确保已安装 Unity XR Interaction Toolkit，然后进行以下操作：&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;打开 Package Manager&lt;/li&gt;&#10;&lt;li&gt;找到 Interaction Toolkit&lt;/li&gt;&#10;&lt;li&gt;在 Samples 标签页下找到 Spatial Keyboard&lt;/li&gt;&#10;&lt;li&gt;点击 Import 导入资源包&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;&lt;img src="https://www.xrstudy.net/images/posts/xri-spatial-keyboard/01-spatial-keyboard-sample-import.png" alt="Package Manager 的 Samples 列表选中 XR Interaction Toolkit，右侧找到 Spatial Keyboard 示例并点击 Import"&gt;&lt;/p&gt;&#10;&lt;p&gt;导入过程中会提示对 TextMesh Pro 的依赖，这是因为键盘上的文字是通过 TextMesh Pro 呈现的。&lt;/p&gt;&#10;&lt;h3 id="解决版本依赖问题"&gt;解决版本依赖问题&lt;/h3&gt;&#10;&lt;p&gt;初次导入后可能会遇到版本依赖问题。如果运行应用程序时出现与 &lt;code&gt;KeyboardOptimizer.cs&lt;/code&gt; 相关的报错，如下图所示：&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="https://www.xrstudy.net/images/posts/xri-spatial-keyboard/02-keyboardoptimizer-error.png" alt="Console 中的编译错误：KeyboardOptimizer.cs(284,20) error CS0246"&gt;&lt;/p&gt;&#10;&lt;p&gt;此时需要升级 TextMesh Pro 插件：&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;打开 Package Manager&lt;/li&gt;&#10;&lt;li&gt;切换到 Unity Registry&lt;/li&gt;&#10;&lt;li&gt;找到 TextMesh Pro&lt;/li&gt;&#10;&lt;li&gt;点击 Update 升级到较新版本（如从 3.0.7 升级到 3.0.9）&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;&lt;img src="https://www.xrstudy.net/images/posts/xri-spatial-keyboard/03-textmeshpro-update.png" alt="Package Manager 中 TextMesh Pro 的详情页，右上角是 Update to 3.0.9 按钮"&gt;&lt;/p&gt;</description></item></channel></rss>