VRTK抓取父对象或子对象

时间:2018-06-27 09:50:55

标签: unity3d htc-vive vrtk

我正在将VRTK(带有Unity)用于HTC Vive上的个人项目。我目前正在努力在游戏中添加枪支。

这是我的问题:

我的游戏中有一个步枪物体,它是由几个部分(儿童)组成的:握柄,瞄准镜,弹匣等。

我希望能够从弹匣以外的任何部分(儿童)中抓取整个步枪:如果我移动步枪,则弹匣应保持连接并跟进。此外,我希望能够独立于步枪来抓取弹匣并将其分离以模拟装弹机制。

目前我可以抓住步枪,但是当我尝试抓住弹匣时,它代替了步枪,因为杂志是步枪的子弹。

这就是我所拥有的:

Rifle (gameobject):
    Scripts:
        - VRTK_InteractableObject (IsGrabbable and IsUsable are both on)
        - VRTK_FixedJointGrabAttach
        - VRTK_InteractHaptics

    Children (gameobjects):
        - Grip
        - Scope
        ...
        - Magazine:
            Scripts:
                - VRTK_InteractableObject (IsGrabble is on)
                - VRTK_TrackObjectGrabAttach

我知道VRTK_InteractableObject将在与游戏对象或其子对象的任何碰撞器进行交互时做出反应。由于弹匣是步枪的子弹,因此当我尝试抓住弹匣时,步枪上的VRTK_InteractableObject会做出反应,从而防止触发弹匣本身的VRTK_InteractableObject。 我尝试使用“被忽略的对撞机”属性,但是问题是我的杂志是从一个单独的预制件动态加载到游戏中的:我可以提供的对撞机不匹配,因此这不是有效的解决方案。 / p>

我想知道是否有什么办法可以在不涉及太多脚本的情况下完成这项工作,因为我想使事情保持尽可能的整洁。

我的环境:

  • Unity 2017.1.2f1 64位
  • VRTK 3.2.1
  • SteamVR 1.2.3

提前谢谢大家。干杯!

0 个答案:

没有答案