效果展示
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键)
本文转载自: https://blog.csdn.net/2201_75516689/article/details/136172559
版权归原作者 强迫症患者泷 所有, 如有侵权,请联系我们删除。
版权归原作者 强迫症患者泷 所有, 如有侵权,请联系我们删除。