0 votes
by (830 points)

使用pico官网的unity XR SDK,开发环境:unity2020.3.20、XR工具包2.0.0pre5

2 Answers

0 votes
by (55.5k points)
selected by
 
Best answer

开发者您好,

Unity XR目前只提供了一个获取键值的接口,类似GetKeyDown的逻辑需要开发者自己编写,以下是一个我们封装的简单代码,供您参考:

using UnityEngine; 
using UnityEngine.XR;

public class XButton : MonoBehaviour
{
public static bool indexBool = true;
public bool XR_GetKeyDown(XRNode node, InputFeatureUsage<bool> usage)
{
    InputDevice device = InputDevices.GetDeviceAtXRNode(node);
    bool isDone;
    if (device.TryGetFeatureValue(usage, out isDone) && isDone)
    {
        if (indexBool)
        {
            indexBool = false;
            return true;
        }
        else
        {
            return false;
        }
    }
    else
    {
        indexBool = true;
        return false;
    }
}
void Update()
{
    if (XR_GetKeyDown(XRNode.LeftHand, CommonUsages.primaryButton))
    {
        Debug.Log("输出");
    }
}
}
by (1.1k points)

官方还是厉害

0 votes
by (1.1k points)

试试在Update里面放这个行不行

if(InputDevices.GetDeviceAtXRNode(XRNode.LeftHand).TryGetFeatureValue(CommonUsages.primaryButton, out bool isDone))
{
//要触发的事件
}

by (830 points)

if(InputDevices.GetDeviceAtXRNode(XRNode.LeftHand).TryGetFeatureValue(CommonUsages.primaryButton, out bool isDone))
{
//要触发的事件
Debug.Log("输出");
}

我在update中使用这种方式输出日志,但是我发布到Pico后,还没按下按键日志就不断输出。。。

by (100 points)

我问下您,Debug.Log在Pico里怎么看到的输出。。

by (100 points)

你可以使用PreviewTool 在unity里面debug

...