Unity之OpenXR+XR Interaction Toolkit实现 抓取物体

news/2024/4/27 9:59:49/文章来源:https://blog.csdn.net/qq563129582/article/details/130355633

前言

我们今天来说一下如何使用XR Interaction Toolkit来实现和3D物体的交互之:抓取,简单说就是通过VR手柄拿起来一个物体。

二.准备工作

有了前两篇的配置介绍,我们就不在详细说明这些了,大家自行复习
Unity之OpenXR+XR Interaction Toolkit接入Pico VR一体机
Unity之OpenXR+XR Interaction Toolkit接入HTC Vive

我们新建一个3D(URP)工程
然后通过PackageManager安装XR Interaction ToolKit插件。
配置好XR Interaction Toolkit的Preset
新建一个3D场景

准备工作完毕

配置3D物体

1.我们随便创建一个3D的球体
在这里插入图片描述
2.给他添加XR组件:XR Grab Interactable。添加完毕后,球体会自动添加Collider和Rigidbody。
在这里插入图片描述
其他参数暂时不用设置

射线抓取

其实默认XR Origin 创建完毕后,手柄的Controller设置应该是XR Ray Interactor组件,即射线交互组件,这允许我们通过射线和物体进行交互,当然也可以射线远程抓取。
XR Ray Interactor有一个选项 Force Grab,它默认是勾选的。如果勾选,我们通过射线抓取到物体后,物体会迅速到收的Attach位置。如果不勾选,我们通过射线抓取后,物体会和手保持抓取是的相对距离。

在这里插入图片描述
设置完上面步骤后,即可运行测试 射线远距离抓取。

手接触抓取

如果我们想通过手部接触的直接抓取物体,而不是通过射线远距离抓取物体,那么我们就不使用XRRay Interactor了,而是使用XR Direct Interactor组件。我们来演示一下如何给右手实现接触抓取功能。
1.我们点击RightHandController,删除上面的所有组件
2.右键点击RightHandController,创建XR->Director Interactor(action-based)节点。
在这里插入图片描述
设置完上面步骤后,即可运行测试 手接触抓取。

XR Interactor Group

我们除了单独使用Ray Interactor和Direct Interactor组件外,还有一种可能就是,同时使用二者或者切换使用。那么我么就要使用到XR Interactor Group组件了,下面演示右手如何设置。
1.点击RightHand Controller,删除掉所有的组件。
2.右键点击RighHand Controller,添加 Ray Interactor和Direct Interactor两个子组件。
在这里插入图片描述
3.点击RightHand Controller ,添加XR Interactor Group组件,然后添加两个字子节点Direct Interactor和Ray Interactor组件作为Starting Group Members属性。接下来就可以通过XR Interactor Group来控制多个不同的Interactor了。
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

BPF技术学习与整理

目录 eBPF是什么? eBPF是做什么的?可以解决什么问题? eBPF可以带来的解决方案是什么? eBPF的技术点 eBPF hookeBPF MapeBPF Helper FunctioneBPF有什么限制吗? 前言 21年因为项目需求而要开发一个工具,可以…

每日一个小技巧:1招教你wav格式如何转换mp3

wav是一种质量较高的音频格式,但它的文件大小通常比较大。为了更方便地分享和存储音频文件,许多人都会选择将其转换为mp3格式。因为mp3格式能够在保持较高音质的同时,尽量降低文件大小,帮助你节省许多磁盘空间。那你们知道wav格式…

Java基础——多线程创建

(1)什么是线程? 线程(thread)是一个程序内部的一条执行路径。程序中只有一条执行路径,那么这个程序就是单线程的程序。 (2)多线程是什么? 多线程是指从软硬件上实现多执行流程的技术。 &…

让 ChatGPT 扮演一个艺术家,协助我们生成绘图 prompt

stable-diffusion Prompt 生成 直接生成 按照惯用的扮演思路,我们可以让 ChatGPT 扮演一个艺术家,协助我们生成绘图 prompt。考虑到 ChatGPT 和 DallE 同为 openai 公司产品,且 stable-diffusion 开源模型出现较晚,ChatGPT 训练…

【软件工程】UML序列图

一.概述 序列图(时序图)是一种软件工程行化建模方法,用于可视化系统或应用程序中多个对象之间 的交互。在序列图中,每个对象都表示为竖直线,对象之间的消息则表示为水平箭头 从一个对象指向另一个对象。 序列图可以…

搞懂 API ,地图 API 制作方法分享

地图 API 是一种基于 Web 开发的应用程序编程接口,可以用于创建和展示地图及地理信息。以下是一些地图 API 制作的方法: 选择地图 API 平台:目前市场上有很多地图 API 平台供选择,比如 Google Maps API、百度地图 API、高德地图 A…

2023年五月份图形化三级打卡试题

活动时间 从2023年5月1日至5月21日,每天一道编程题。 本次打卡的规则如下: 小朋友每天利用10~15分钟做一道编程题,遇到问题就来群内讨论,我来给大家答疑。 小朋友做完题目后,截图到朋友圈打卡并把打卡的截图发到活动群…

在阿里做测试开发的这5年,收获与感悟...

正好在离职交接空档期,就抽空简单分享自己的一些个人经历给大家,希望对刚毕业不久或者工作三五年的同学能有一些帮助。 测试新人 我的职业生涯开始和大多数测试人一样,开始接触都是纯功能界面测试。那时候在一家电商公司做测试,做…

基于异常值鲁棒性问题的极限学习机的回归问题研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

2023年五月份图形化四级打卡试题

活动时间 从2023年5月1日至5月21日,每天一道编程题。 本次打卡的规则如下: 小朋友每天利用10~15分钟做一道编程题,遇到问题就来群内讨论,我来给大家答疑。 小朋友做完题目后,截图到朋友圈打卡并把打卡的截图发到活动群…

【独具匠心设计】全网最好的国学,历代文学,名著,小说网推荐

极力推荐一个功能简单、易用、访问快捷、界面大气,清爽、资源丰富、设计专业、完全免费的文学网站。它的名字叫“历代文学”,是由成都心海科技公司所研发,设计真可谓独具匠心。 “历代文学”收录了来自古今中外 20 多个朝代,近 30个 国家的作…

消息队列选型

消息队列选型 大家好,我是易安!今天我们聊下消息队列常见选型。 消息队列作用 谈选型之前我们先讲下我们为什么需要消息队列。 消息队列是一种很流行的技术,自从系统间开始通信时,消息队列就出现了。然而,对消息队列给…

Windows 远程桌面提示没有远程桌面授权服务器可以提供许可证

可参考之前发布的一篇文章,帮助你远程登录:远程连接提示 由于没有远程桌面授权服务器提供许可证_计算机没有远程桌面客户端访问许可证_csdn_aspnet的博客-CSDN博客 虽然上述文章命令可以远程进入系统,但是每次都需要使用上述文章中的命令进入…

【数据库】索引和事务

目录 1.索引 1.1关于索引 索引是什么? 为什么要有索引? 索引的作用? 索引的优点和缺点? 1.2索引类型及创建 索引的分类 创建索引 1.3索引的数据结构 1.4索引覆盖 2.事务 2.1关于事务 概念 事务的使用 2.2事务的特…

他们是怎么使用上gpt-4的-gpt-4在哪用

为什么有人在使用GPT4 openAI尚未正式发布GPT-4模型,也没有公布任何与GPT-4相关的信息。因此,没有人可以在使用GPT-4模型。 值得注意的是,虽然OpenAI尚未正式发布GPT-4,但由于其之前发布的GPT-3具有出色的性能和功能&#xff0c…

chmod 命令 (chmod 0660)

chmod的作用: 用于设置文件所有者和文件关联组的命令,就是控制用户的权限命令 注意事项: chown 需要超级用户 root 的权限才能执行此命令。 自己常用chmod 命令是 chmod 777 * 给所有文件权限 chmod 777 文件名 给单独文件权限 这个777 是怎么来的, 或者chmod 0660 这…

C++STL详解(10) -- 使用哈希表封装unordered_set和unordered_map

文章目录 哈希表模板参数改造针对模板参数V改造增加仿函数获取具体数据类型. 哈希表的正向迭代器正向迭代器中的内置成员:正向迭代器的成员函数 哈希表插入函数的修改(适用于unordered_map)一个类型K去做set和unordered_set他的模板参数的必备条件.unordered_set的模拟实现(完整…

PySide6/PyQT多线程的使用

前言 上一篇文章介绍了在PySide6中使用多线程去解决PySide6/PyQT的界面卡死问题,这次来具体介绍下多线程在使用上的一些细节。 本文尝试对以下两个问题进行解决: 对 PySide6/PyQT 多线程的使用不熟悉;在 PySide6/PyQT 的应用程序里有耗时任…

【Linux基础IO之 内存文件操作】

目录: 前言一、引入C语言中的文件操作系统文件操作open 位图权限close、write、readlseek C语言中的文件操作函数与系统文件操作函数的联系 三、文件描述符1.文件描述符是什么2.文件缓冲区再谈重定向 四、文件缓冲区分类语言级缓冲区为什么要有两个缓冲区 五、仿写c…

OpenGL入门教程之 变换

引言 这是一个闪耀的时刻,因为我们即将能生产出令人惊叹的3D效果! 变换 向量和矩阵变换包括太多内容,但由于学过线性代数和GAMES101,因此不在此做过多阐述。仅阐述包括代码的GLM内容。 GLM的使用 (1)GLM…