【Oculus Interaction SDK】(三)限制可操作物体的移动 / 旋转

前言

前段时间 Oculus 的 SDK 频繁更新,很多已有的教程都不再适用于现在的版本了。本系列文章的主要目的是记录现版本常见功能的实现方法,便于自己后续开发。当然,不排除我文章刚写完 SDK 又变了的可能性,所以如果有人发现文章的内容已经不适用于新版本了,也可以留评论或者私信我,我会持续更新文章内容。

当前适用版本:

  • Unity 版本:2021.3.7f1c1
  • Oculus Interaction SDK 版本:47.0

文章最近更新日期:2023.02.08

 


给可操作物体添加限制

在这里依旧使用之前文章中制作好的物体 Cube(Both)进行测试,不清楚的可以看一下这篇文章

【Oculus Interaction SDK】(一)设置 VR 相机与控制器 && 实现简单的抓取功能 - 千叶Christa - 博客园 (cnblogs.com)

 

复制出一个物体,并修改名称为 Limited Movement

之前在添加 Grabbable 组件的时候,我们都没有给组件任何参数,那是因为项目运行时会自动添加一个单手操作器 One Grab Free Transformer

我们可以通过自己添加单手操作器的方式来限制物体的运动

 

限制移动

给测试物体添加组件 One Grab Translate Transformer,然后把这个组件赋值给 Grabbable 的 One Grab Transformer

测试物体原本的位置是(0,1,0.3),我想让它仅在 X 轴上移动,并且限制它的移动范围为 (-0.2,0.2),那么需要控制三个轴:Y 轴与 Z 轴锁定在原位置,X 轴给出活动范围

注:这里设置的参数对应物体的 LocalPosition

 

完成后效果如下

 

限制旋转

给测试物体添加组件 One Grab Rotate Transformer,然后把这个组件赋值给 Grabbable 的 One Grab Transformer

在只调整旋转轴(Rotation Axis),不给旋转锚点、不限制角度的情况下,物体会自身中心为旋转锚点,向对应方向进行旋转

 

效果如下:

 

如果给定一个旋转中心(Pivot),该物体就会围绕旋转中心进行旋转(为了方便演示,对测试物体进行了缩放,同时包含了角度限制)

 

效果如下:

 


参考资料

Two Hand manipulation and Restricted Grab - Oculus Interaction SDK - PART 2 - YouTube

posted @ 2023-02-08 10:57  千叶Christa  阅读(640)  评论(0编辑  收藏  举报