提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
前言
实现手柄触碰门把手开关门
一、步骤
1.下载门模型
2.导入模型
解压压缩包导入unity
3.调整模型
1、在门上创建一个Sphere子物体,并移动到门把手上
2、移除图中的组件
3、勾选Sphere Collider的 Is Trigger,用于检测碰撞
4.重置右手控制器
Ctrl+D复制Right Controller,移除不要的组件(具体看图自行移除),添加XR Direct Interactor组件。
XR Direct Interactor 通常用于表示用户的手或手持设备,并允许用户在虚拟空间中直接与物体进行交互。
5.替换右手控制器模型
注意预制体在packages里面
6.给Right Controller(1)添加Collider组件,勾选Is Trigger
右手与门把手碰撞,碰撞检测时实现触碰门把手开关门,碰撞半径(Radius)自行调,接近现实调为0.1就好
7.调整门的坐标朝向
创建空物体,将空物体拖到门中心位置,然后将门(这里的门指子物体)作为空物体的子物体(为什么要做这一步,如果坐标轴的朝向不对会影响后续测试,如果你用了其他模型朝向是对的,那就不用做这一步)
8.添加XR Grab Interactable组件
Use Gravity取消勾选,不然运行后门会掉下去。
XR Grab Interactable 是一种 XR Interaction Toolkit(XR ITK)提供的组件,用于简化在 XR(扩展现实)环境中进行抓取和交互的开发。
9.将第三步创建的Sphere子物体拖入Colliders(看第8步的图)
在这一步骤之前整个门都会被抓取,现在只有门把手能被抓取
10.添加Hinge Joint组件
Hinge Joint(铰链关节)是 Unity 中的一种物理关节,用于模拟物体之间的铰链连接。它常被用于模拟门、摆锤等结构,使物体能够在一个轴上旋转。
11.调整铰链方向及旋转角度
1、Edit Angular Limits那要点击才能显示出来,参数自行调,需要呈现图中红圆圈靠近边缘且与地面平行的效果。物体会绕着铰链(即红色圆圈)转动。
2、勾选Use Limits,限制旋转角度,最小值取-90,你们或许用了别的模型,参数自行调整
12.改运动类型
Movement Type选择Velocity(速度追踪)
纠正
这里有个错误纠正一下,Sphere需要放到GameObject(1)下作为它的子物体,不然运行时打开不了门(原因我也不太清楚,本作者还是个新人,见谅)
二、测试
注意,右手柄是按侧键进行抓取,之前的移动传送也是侧键