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

news2024/12/27 13:59:41

前言

我们今天来说一下如何使用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.coloradmin.cn/o/458659.html

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

相关文章

PyCharm连接远程服务器配置过程

目录 背景 一、建立远程服务器连接 1.创建远程连接 2.进行本地项目与远程项目之间的文夹路径映射 3.设置自动上传项目(如有需要,可设置) 4.验证是否连接成功(调出服务器的文件目录) 二、本地配置Python解释器 …

【社区图书馆】-《科技服务与价值链》总结

【为什么研究价值链】 价值链及价值链协同体系是现代产业集群的核心枢纽,是推进城市群及产业集群化、服务化、生态化发展的纽带。因而推进价值链协同,创新发展价值链协同业务科技资源体系,既是科技服务业创新的重要方向,也是重塑生…

NetApp ONTAP: 企业级数据管理软件,为无缝混合云奠定基础

为何选择 NetApp ONTAP 进行企业数据管理 NetApp ONTAP 数据管理软件可帮助您快速应对新的业务挑战,简化日常活动并给您的团队留下深刻印象。无论您在内部环境和云中有着怎样的数据管理需求,ONTAP 都能满足您。 1、支持当今的数据驱动型企业 当今的企…

升级底座、打破壁垒、消灭报销,让业财融合一触即发!

一个平台 一个入口 一站服务 以移动互联网、云计算、大数据、人工智能、5G与物联网、区块链为代表的新一代信息通信技术(ICT)的集群式、交互式发展,驱动企业进入数智化新阶。商业创新是打造企业竞争力的必然选择,在数字化转型大潮…

p68 内网安全-域横向 PTHPTKPTT 哈希票据传递

数据来源 ​ ​ Kerberos 协议具体工作方法,在域中,简要介绍一下: 客户机将明文密码进行 NTLM 哈希,然后和时间戳一起加密(使用krbtgt 密码 hash 作为密钥),发送给 kdc(域控),kdc 对用户进行检…

C语言从入门到精通第11天(数组的基本操作)

数组的基本操作 数组的概念一维数组二维数组 数组的概念 在程序设计中,为了方便处理数据把具有相同类型的若干变量按有序形式集合在一起,这些按序排列的同类数据元素的集合称为数组。 在C语言中,数组属于构造数据类型,一个数组可…

聊聊如何通过APT+AST来实现AOP功能

前言 如果有使用过spring aop功能的小伙伴,应该都会知道spring aop主要是通过动态代理在运行时,对业务进行切面拦截操作。今天我们就来实现一下如何通过APTAST在编译期时实现AOP功能。不过在此之前先科普一下APT和AST相关内容 APT(注解处理…

Nginx的重写功能

一、常用的Nginx 正则表达式 字符涵义以及示例^匹配输入字符串的起始位置$匹配输入字符串的结束位置*匹配前面的字符零次或多次;如“ol*”能匹配“o”及“ol”、“oll”匹配前面的字符一次或多次;如“ol”能匹配“ol”及“oll”、“olll”,但…

智能建筑中电力监控系统的应用与产品选型

摘要:近几十年,中国现代化经济不断发展,计算机技术、信息技术等相关产业也取得了飞跃性的进步。随着商业、生活以及公共建筑不断提高智能管理和节能的要求,电力监控系统开始逐渐渗入人们的日常生活,发挥着不可替代的作…

Graphql中我们应该用什么姿势来实现Resolver?

Graphql中我们应该用什么姿势来实现Resolver? Graphql中我们应该用什么姿势来实现Resolver? 前言设计数据库定义 Type实现 Resolver按需组装查询语句请求数据库GraphQLResolveInfo附录 前言 我最近在用 Graphql 来弥补原先写的 RESTFUL 接口的一些短板。在实践过程中遇到…

实战Websocket

实战Websocket:从入门到自闭 作为前端开发人员,我们经常需要使用 Websocket 实现实时通信功能,如聊天室、实时数据展示、游戏等。近期我在一家公司实习工作中,也遇到了使用 Websocket 的场景,所以开始了解 Websocket …

第四章 使用Maven:IDEA环境

1、创建 Project2、开启自动导入 TIP 各个 IDEA 不同版本在具体操作方面存在一定差异,这里我们以 2019.3.3 版本为例进行演示。其它版本大家灵活变通即可。 第一节 创建父工程 创建 Project 开启自动导入 创建 Project 后,IDEA 会自动弹出下面提示…

有史以来第一次利用 Kubernetes RBAC 攻击后门集群

我们最近发现了有史以来第一个证据,表明攻击者正在野外利用 Kubernetes (K8s) 基于角色的访问控制 (RBAC) 创建后门。 攻击者还部署了 DaemonSets 来接管和劫持他们攻击的 K8s 集群的资源。我们的研究表明,该活动正在积极针对至少 60 个野外集群。 这…

026:Mapbox GL加载矢量切片数据源

第026个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+mapbox中加载矢量切片数据源。将矢量源添加到地图。使用其 tileset URL(mapbox:// + tileset ID)添加任何 Mapbox 托管的 tileset。 直接复制下面的 vue+mapbox源代码,操作2分钟即可运行实现效果 文章目录 示例…

python@可变对象和不可变对象@按值传递和引用传递@python运行可视化工具

文章目录 可变对象和不可变对象🎈可视化工具🎈可变对象和idegeg变量名和内存地址🎈函数调用对参数的修改😂Note 按值传递vs引用传递note🎈如何借助函数修改外部变量的值?Note 可变对象和不可变对象🎈 在Py…

这些不可不知的JVM知识

JVM是面试中必问的部分,本文通过思维导图以面向面试的角度整理JVM中不可不知的知识。 先上图: JVM必备知识 1、JVM基本概念 1.1、JVM是什么 JVM 的全称是 「Java Virtual Machine」,也就是我们耳熟能详的 Java 虚拟机。 JVM具备着计算机的…

vue3 Pinia快速入门

为什么是Pinia 怎么说呢,其实在过往的大部分项目里面,我并没有引入过状态管理相关的库来维护状态。因为大部分的业务项目相对来说比较独立,哪怕自身功能复杂的时候,可能也仅仅是通过技术栈自身的提供的状态管理能力来处理业务场景…

huggingface下载的.arrow数据集读取与使用说明

1.数据下载方式:load_dataset 将数据集下载到本地:(此处下载的是一个物体目标检测的数据集) from datasets import load_dataset # 下载的数据集名称, model_name keremberke/plane-detection # 数据集保存的路径 save_path da…

苹果Mac电脑清理垃圾软件卸载工具CleanMyMac X

最近刚刚入手了一台 M1 Macbook,因为不是很懂下载了很多软件,然后又卸载了一些,导致系统内存在很多垃圾文件,我也不知道怎么清理,后来查询了一些资料,大家都普遍推荐 CleanMyMac X,于是经过我一…

触摸屏是如何诞生的,它又是如何影响和改变着我们的生活?

芊芊玉指在小小的屏幕上滑动,天下事便了然于胸。这就是手机触摸屏给我们的生活带来的改变。 曾几何时,我们是生活在九宫格或者全键盘上的“拇指族”。一股浪潮席卷而来,手机上的实体按键都消失了,虚拟按键仅在需要时出现。触摸屏是…