Unity VR中如何检查物体是左手还是右手抓取?

问题描述 投票:0回答:1

我正在使用 Unity

XRGrabInteractable
来抓取 VR 中的对象。但我希望如果用左手和右手抓住物体,某些行为会有所不同。

我尝试继承

XRGrabInteractable
并在
OnSelectEntering
方法中检查交互器是右手还是左手,但我不知道如何从
SelectEnterEventArgs
中进行检查。

我查看了 Unity API 文档,但找不到指示它是哪只手的方法或属性。

这将如何完成?

这是我正在尝试编写的代码:

public class ItemGrab : XRGrabInteractable
{
    protected override void OnSelectEntering(SelectEnterEventArgs interactor)
    {
        base.OnSelectEntering(interactor);

        if( /* CHECK IF RIGHT HAND */) 
            //do right hand thing
        else
            //do left hand thing
    }
}
unity-game-engine virtual-reality
1个回答
0
投票

向控制器添加可交互层(参见附件) 抓取对象脚本里面的方法:

 public void GrabWeapon(SelectEnterEventArgs grabData)
        {
            var rightHand = (grabData.interactorObject.interactionLayers & (1 << 1)) == 0;
            var handString = rightHand ? "Right" : "Left";
            Debug.Log($"GrabWeapon {handString} hand");
        }

Object with listener script and XRGrabInteractable

XR Controllers setup

© www.soinside.com 2019 - 2024. All rights reserved.