如何使用Unity XR Interaction Toolkit

使用环境:

Unity2021.3.21f

XR Interaction Toolkit v3.0.0

各类函数可用的:

简单项目配置:

第一步,导包(samples可以不用导这么多,两个就够了):

第二步,构建场景:

至此,一个简单的VR场景就搭好了,啥都没有的,如果你想加UI,想加课拖拽操纵的物体,那就往场景加。

XR Origin这个就是头盔加两个手柄的信息集合体。

XR Device Simulator 这个是在Editor下PC模拟头盔手柄操作的脚本,方便调试用的,运行时看左下角的提示就懂如何操作了。(注:打包的时候记得Disable这个玩意儿或者自己些个脚本在Editor的时候激活这个脚本)

添加可操作的UI:

注意调一下这个canvas的大小位置,还要注意你的evetSystem是不是跟着生成出来的还是说是你场景里自带的,要它跟着生成出来的这个才能正确接受事件。

还想要自定义一些按键触发事件?去看我的new input system的文章。

可控制物体脚本(无重力的):

XR Grab Interactable(会自动添加RigidbodyXR General Grab Transformer,但最好还是自己添加,好配置参数);加脚本在你的物体上,如果这个物体很多碰撞体,拖拽整体,就加在父节点上也是一样的,脚本会自动获取子节点的碰撞然后移动的是父物体。

一个简单的不受重力影响的可射线操作的物体就完成了。(注:Rigidbody的 Is Kinematicinterpolate要配置好)

除此之外,你还想要限定它的移动轴,规定它只能在某一特定轴移动?那么你在运行的时候其实就会发现有个脚本会自动添加进来的,

那就是XR General Grab Transformer 。你可以提前把它先挂载进你要操作的物体上,然后你看看这个Permitted displacement Axes属性点开就懂了,这里就是可操作的移动的轴。

什么?你还想限制它的旋转轴?也有这样的脚本,不过它不会跟随xr grab interactable一起加进去,你需要自己手动添加 Grab Transformer Rotation Axis Lock

至此,这个物体你想怎么玩就怎么玩了,还有很多属性因为没有研究就不过多赘述了。

传送机制:

既然是VR,那肯定少不了空间移动,大多数都是射线过去的,前面已经配置好了一个VR环境了,在这基础上继续整。

Teleprotation Area 把这个脚本挂载在你的地面碰撞体上就行了,如果有很多不同的地面碰撞体,就整一个父节点把它们都放在子节点就行了,在PC(模拟)运行时上传送就是在select的对象是手柄的时候按方向键wasd传送就行了,射线必须hover在你的地板上哦。

传送到某一个具体位置?那就挂载Teleportation Anchor ,具体传送操作在PC也是方向键然后传送,同上。传送的位置就是这个teleprot Anchor Transform属性,你可以把这个具体的位置挂载在这个子节点下,拖拽上去就行了。


其他:(边玩边研究,感觉接触的还不是很多,这些东西其实在samples的场景里都有,花点时间去看一下应该都懂了),接触完觉得有必要的就继续记录………………………………………………………………………………

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

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

相关文章

【ZYNQ】GPIO 与 AXI GPIO

在嵌入式开发中,GPIO 是最常见的外设。GPIO 是 General Purpose I/O 的缩写,译为通用输入/输出。GPIO 用于连接外部设备,例如按键、传感器等,实现数字信号的输入或输出功能。本文主要介绍 Zynq GPIO 的基本概念,并对比…

SpringBoot 实现私钥解密 前端的公钥加密内容

目录 一、前端公钥加密 二、后端私钥解密 一、前端公钥加密 Nextjs 前端实现RSA公钥加密 JSEncrypt加载问题解决-CSDN博客 二、后端私钥解密 import javax.crypto.Cipher; import java.security.KeyFactory; import java.security.PrivateKey; import java.security.spec.…

表现层框架设计之表现层设计模式_3.MVVM模式

1.MVVM模式 MVVM模式正是为解决MVP中UI种类变多,接口也会不断增加的问题而提出的。 MVVM模式全称是模型-视图-视图模型(Model-View-ViewModel),它和MVC、MVP类似,主要目的都是为了实现视图和模型的分离,不…

深度学习之基于Yolov3的行人重识别

欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 一、项目背景 行人重识别(Person Re-Identification,简称ReID)是计算机视觉领域…

新品:LoRa扩频调制SOC无线模块-内置ARM、工业级晶振

LoRa-STM32WLE5是思为无线最新研发的一款SOC无线模块,模块主芯片采用了ST 公司的STM32WLE5芯片研发。模块采用LoRa调制,内置工业级晶振,并基于高性能的ArmCortex-m4 32位RISC核心,工作频率高达48 MHz。这个核心实现了一套完整的DS…

项目十二:简单的python基础爬虫训练

许久未见,甚是想念,今日好运,为你带好运。ok,废话不多说,希望这门案例能带你直接快速了解并运用。🎁💖 基础流程 第一步:安装需要用到的requests库,命令如下 pip inst…

初始化是什么

定义 初始化(Initialization)是指在计算机科学和软件开发中,将系统、变量、对象或其他可用组件设置为其初始状态或初始值的过程。这通常是在程序开始执行或组件第一次使用之前进行的,以确保其处于可预测和稳定的状态。 初始化的…

844. 比较含退格的字符串

给定 s 和 t 两个字符串,当它们分别被输入到空白的文本编辑器后,如果两者相等,返回 true 。# 代表退格字符。 注意:如果对空文本输入退格字符,文本继续为空。 示例 1: 输入:s "ab#c&quo…

Vue.js组件设计原则

Vue.js组件设计原则主要遵循以下几点,以确保组件的可维护性、可复用性、清晰性和可测试性: 单一职责原则(Single Responsibility Principle, SRP): 每个组件应该只负责一个特定的功能或一组紧密相关的功能。如果一个组…

golang 连接mysql数据库

dbconfigdatastr字符串:用户名:密码tcp(ip:端口)/数据名 连接数据库的那个go文件一定要引用: _ "github.com/go-sql-driver/mysql" import ("database/sql""fmt"_ "github.com/go-sql-driver/mysql""lo…

【漏洞复现】智慧校园(安校易)管理系统 FileUpProductupdate.aspx 任意文件上传漏洞

0x01 产品简介 "安校易"是银达云创公司基于多年教育市场信息化建设经验沉淀,经过充分的客户需求调研,并依据国家"十三五”"教育信息化建设规范而推出的综合互联网教育信息化解决方案。“安校易“以物联网技术为基础,以学…

【Python小案例】Python+mysql+PyQt5健康体检报告查询

下载安装Python3.7.8 python官网:https://www.python.org/ PyQt5配置 安装PyQt5 pip install PyQt5pip install qt5_toolspytcharm创建项目 配置外部工具 QTDesigner的Arguments语句不用填 QTDesigner的Working directory语句:$ProjectFileDir$ Pyuic的Argume…

【职场心灵伴侣】文心一言智能体

【文心一言】智能体 写在最前面名称和简介:职场心灵伴侣AI生成头像添加工具智能体调优 🌈你好呀!我是 是Yu欸 🌌 2024每日百字篆刻时光,感谢你的陪伴与支持 ~ 🚀 欢迎一起踏上探险之旅,挖掘无限…

智能农业时代:智能生态网络与数据流通的融合

随着科技的不断进步,智能农业已经成为现代农业发展的重要趋势。智能生态网络(IEN)作为一种集成化的解决方案,通过整合先进技术和数据要素流通,为智能农业的发展提供了强大的动力。在本文中,我们将探讨IEN在…

鸿蒙开发配置官方地图

一共需要配置 p12 p7b cer csr 四个文件 p12文件配置 注意创建文件名必须是.p12 到AGC创建项目 AppGallery Connect 添加自己的项目名称 我没有开启 暂时不需要 看个人需求 下载刚创建的cer证书 回到我的项目中 点击刚创建的项目 点击这里 四个文件齐全了 "metadata&qu…

《正常血压》

描述 监护室每小时测量一次病人的血压,若收缩压在90−140之间并且舒张压在60−90之间(包含端点值)则称之为正常,现给出某病人若干次测量的血压值,计算病人保持正常血压的最长小时数。 输入描述 第一行为一个正整数n。…

【MySQL精通之路】InnoDB(6)-磁盘结构(5)-Redolog

主博客: 【MySQL精通之路】InnoDB(6)-磁盘上的InnoDB结构-CSDN博客 上一篇: 【MySQL精通之路】InnoDB-双写缓冲区-CSDN博客 下一篇: 目录 1.配置Redo Log容量(MySQL 8.0.30或更高版本) 2.配置重做日志容量(MySQL…

C++初阶之深入模板

一、非类型模板参数 模板参数分类类型形参与非类型形参。 类型形参即:出现在模板参数列表中,跟在class或者typename之类的参数类型名称。 非类型形参,就是用一个常量作为类(函数)模板的一个参数,在类(函数)模板中可将该参数当成…

基于STM32实现智能空气质量监测系统

目录 文章主题环境准备智能空气质量监测系统基础代码示例:实现智能空气质量监测系统 配置传感器并读取数据数据处理与显示数据存储与传输应用场景:室内环境监测与空气质量控制问题解决方案与优化收尾与总结 1. 文章主题 文章主题 本教程将详细介绍如何…

LIO-EKF: High Frequency LiDAR-Inertial Odometry using Extended Kalman Filters

一、论文摘要 里程计估计是每个需要在未知环境中导航的自主系统的关键要素。在现代移动机器人中,3D LiDAR 惯性系统通常用于执行此任务。通过融合 LiDAR 扫描和 IMU 测量,这些系统可以减少因顺序注册各个 LiDAR 扫描而引起的累积漂移,并提供稳…