HTC Tracker 绑定固定的设备ID(写代码版本)

Posted weixin_43787178

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HTC Tracker 绑定固定的设备ID(写代码版本)相关的知识,希望对你有一定的参考价值。

通过id序列号进行绑定写死

网上看了很多,用其他的太麻烦,不如直接写代码;

1.找到对应的脚本

SteamVR_TrackedObject


2.引入

using Valve.VR;

3.打印你想绑定设备序列号

void ListDevices()
{
    for (int i = 0; i < SteamVR.connected.Length; ++i)
    {
        ETrackedPropertyError error = new ETrackedPropertyError();
        StringBuilder sb = new StringBuilder();
        OpenVR.System.GetStringTrackedDeviceProperty((uint)i, ETrackedDeviceProperty.Prop_SerialNumber_String, sb, OpenVR.k_unMaxPropertyStringSize, ref error);
        var SerialNumber = sb.ToString();

        OpenVR.System.GetStringTrackedDeviceProperty((uint)i, ETrackedDeviceProperty.Prop_ModelNumber_String, sb, OpenVR.k_unMaxPropertyStringSize, ref error);
        var ModelNumber = sb.ToString();
        if (SerialNumber.Length > 0 || ModelNumber.Length > 0)
            Debug.Log("Device " + i.ToString() + " = " + SerialNumber + " | " + ModelNumber);
        
    }
}

4.在start函数里面对所有当前连接设备序列号进行遍历,逐个判断
4.1 声明一个设备index,以对应传统面板中选定设备device

 public EIndex index;

4.2 遍历,赋值

    void LockTrackerID()
    {
        for (int i = 0; i < SteamVR.connected.Length; ++i)
        {
            ETrackedPropertyError error = new ETrackedPropertyError();
            StringBuilder sb = new StringBuilder();
            OpenVR.System.GetStringTrackedDeviceProperty((uint)i, ETrackedDeviceProperty.Prop_SerialNumber_String, sb, OpenVR.k_unMaxPropertyStringSize, ref error);//设备串口号
            var SerialNumber = sb.ToString();

            OpenVR.System.GetStringTrackedDeviceProperty((uint)i, ETrackedDeviceProperty.Prop_ModelNumber_String, sb, OpenVR.k_unMaxPropertyStringSize, ref error);
            var ModelNumber = sb.ToString();
            if (SerialNumber.Length > 0 || ModelNumber.Length > 0)
            {
                if (SerialNumber == "LHR-3F6EC1BE")
                {  
                    index = (EIndex)i;
                    Debug.Log("已经绑定设备"+ " "+index+" "+ i);
                }
                //键盘定位器 Device 3 = LHR-3F6EC1BE | VIVE Tracker Pro
                Debug.Log("Device " + i.ToString() + " = " + SerialNumber + " | " + ModelNumber);
            }

        }
    }

官方解决办法:
https://www.vive.com/cn/forum/2556
太麻烦没看懂,貌似不能用了,懒得折腾;

以上是关于HTC Tracker 绑定固定的设备ID(写代码版本)的主要内容,如果未能解决你的问题,请参考以下文章

HTC Tracker 绑定固定的设备ID(写代码版本)

HTC Tracker 绑定固定的设备ID(写代码版本)

UE4绑定较少数量HTC VIVE Tracker并定位——基于SteamVR

HTC开放Vive Tracker代码啦!

基于Unity开发广州幻境的Handy结合HTC Tracker的开发坑

HTC SteamVR 不使用头盔,单独使用Tracker(追踪器)