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(写代码版本)的主要内容,如果未能解决你的问题,请参考以下文章
UE4绑定较少数量HTC VIVE Tracker并定位——基于SteamVR