0


Unity-Pico高级开发(一)按键监听,射线交互物体变色

效果展示

Unity-Pico高级开发(一)按键状态获取,射线碰到物体

前言

picoXR为Unity提供的Unity XR SDK是基于Unity XR实现的各个功能,针对手柄和头盔的各个按键摇杆事件的获取,均是采用的Unity XR提供的方法。目前UnityXR只提供了if判断的方式每帧监听的方式,还未提供事件接口等形式。以及XR射线也是仅针对于UGUI的,未对物体有变色状态,我们这里就是进行完善。

为方便读者理解后续API,先粗略介绍一下Unity XR监听按键摇杆的步骤。首先是获取需要监听的设备,然后判断此设备的某种行为是否发生,UnityXR是无差别对待各种品牌的设备的,每种品牌的设备的按键等也都不尽相同。自然设备的行为也是多种多样的,UnityXR提供了一组普遍的行为特征(CommonsUsages),但要具体使用需要根据使用的设备查阅设备具体按键和UnityXR提供的普遍特征的对应关系。本文主要介绍Pico产品,这是pico官网提供的映射关系文档链接https://sdk.picovr.com/docs/XRPlatformSDK/Unity/cn/chapter_five.html#id5

当然我们也会讲一下最基本的写法,基本就是记住或者不懂的翻译一下,其实很好理解的。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.XR.Interaction.Toolkit;
using UnityEngine.XR;

public class CeShi : MonoBehaviour
{
    public static InputDevice[] hands = new InputDevice[2];//双手
    void Start()
    {
        hands[0] = InputDevices.GetDeviceAtXRNode(XRNode.LeftHand);//左手
        hands[1] = InputDevices.GetDeviceAtXRNode(XRNode.RightHand);//右手
    }

    // Update is called once per frame
    void Update()
    {
        if(hands[1].TryGetFeatureValue(CommonUsages.triggerButton,out bool istriggerButton)&&istriggerButton)
        {
            Debug.Log("右手按下了扳机trigger键");
        }
    }
}

获取按键状态

我们这里仅介绍五大按键

trigger(扳机键)

grip(侧键)

primary(A/X键)

secondary(B/Y键)

标签: unity 游戏引擎 xr

本文转载自: https://blog.csdn.net/2201_75516689/article/details/136172559
版权归原作者 强迫症患者泷 所有, 如有侵权,请联系我们删除。

“Unity-Pico高级开发(一)按键监听,射线交互物体变色”的评论:

还没有评论