SteamVR中实现物体的抓取和放回功能

学习资料来源于SteamVR视频课

在SteamVR的InteractionSystem中存在一个叫ItemPackage的模块,可以帮助我们实现道具的抓取和自动放回的效果
请添加图片描述请添加图片描述

实现方式如下

ItemPackage模块分为三个脚本
ItemPackageSpawner:实现交互的核心,在指定的感应区域内检测到抓取事件后在手柄上生成物体的实例,通过检测碰撞实现物体放回的交互功能,在感应区域呈现物体的预览和物体被抓取后的高亮轮廓。
ItemPackage:决定单双手模式,给ItemPackageSpawner提供 预览,实例,高亮轮廓 三种物体的实例。
ItemPackageReference:挂载在实际被抓取的物体上,用于建立与ItemPackage的链接,双手模式下告诉ItemPackageSpawner这两个物体是成套出现的,实现同时抓取同时放下
请添加图片描述

实际操作

首先我们需要准备好需要拿起的物体,课程里老师准备了一个狼牙棒和一个盾牌,其中狼牙棒制作成预览,拿起,轮廓三个预制体。
在这里插入图片描述
其中MaceItemPrefab预制体需要添加脚本
DestroyOnDetachedFromHand:物体离开手后会自动销毁
SteamVR_Skeleton_Poser:为物体添加自定义的抓取手势
ItemPackageReference:将下一步骤做好的MackItemPackage拖入使其与列表建立联系
在这里插入图片描述

然后我们在场景中新建一个空物体命名为MackPickUp并为它加上ItemPackageSpawner脚本,将MacePreview(狼牙棒预制体) 拖到它的下面当其子物体,这里需要注意MacePreview的Transform需要归零,若需要调整其位置我们可以通过调整它的父物体MackPickUp的位置来对它进行调整
在这里插入图片描述
还需要建立一个空物体并命名为MackItemPackage,将其位置归零并挂载脚本ItemPackage,然后分别将准备好的预览,拿起,轮廓三个预制体以及双手模式下另一只手出现的盾牌拖入脚本中 (注意顺序)
在这里插入图片描述
之后我们将这个准备好的预制体拖入场景中MackPickUp身上的ItemPackageSpawner脚本上
在这里插入图片描述

添加感应区域检测抓取事件
在这里插入图片描述
然后我们靠近狼牙棒按下GrabGrip键便可以拿拾取狼牙棒,靠近轮廓区域即可自动放回
在这里插入图片描述

双手模式:右手抓取狼牙棒的时候左手自动出现盾牌,放回时候会自动销毁
首先将MackItemPackage的PackageType改成Two Handed模式
再将盾牌放入Other Hand Item Prefab 中在这里插入图片描述
盾牌的属性设置如下
在这里插入图片描述
在这里插入图片描述
以上就是关于ItemPackage模块的使用,如有不懂可以参考顶部视频链接

  • 4
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值