您当前的位置: 首页 >  vr

每日出拳老爷子

暂无认证

  • 5浏览

    0关注

    135博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Unity VR:如何获得手柄的按键信息

每日出拳老爷子 发布时间:2022-02-27 18:31:28 ,浏览量:5

背景

在引入OpenVR模块后,发现在StartUp时接收Inputdevice信息竟然失灵了。得到的device list count竟然一直是零。

原因

考虑是生命周期的问题,也就是说OpenVR模块下,进入应用时还无法感应device,需要在进入应用后持续感知。 虽然StartUp时拿inputDevice,获得的Device数是零,但在进入游戏后手柄的交互动作是生效的,这也可以印证我之前的判断。

解决方法

在Update层面持续感应Device,获得后给相应变量赋值就可以开始用自己定义的Controller实例感应动作了:

    void Update()
    {
        //获取控制器信息
        if (rightController.isValid)
        {
            rightController.TryGetFeatureValue(CommonUsages.primaryButton, out bool primaryButtonValue);
            if (primaryButtonValue)
            {
                Debug.Log("Pressing primary button.");
            }
        }
        else 
        {
            var devices = new List();
            var characteristics_right = InputDeviceCharacteristics.Right | InputDeviceCharacteristics.Controller;
            var characteristics_left = InputDeviceCharacteristics.Left | InputDeviceCharacteristics.Controller;
            InputDevices.GetDevicesWithCharacteristics(characteristics_right, devices);
            if (devices.Count > 0)
            {
                rightController = devices[0];
            }
        }
    }
关注
打赏
1657016083
查看更多评论
立即登录/注册

微信扫码登录

0.0435s