Tanoda
TrackerFinder.cs
Go to the documentation of this file.
1using System.Collections;
2using System.Collections.Generic;
3using System.Text;
4using UnityEngine;
5#if !UNITY_WEBGL
6using Valve.VR;
7
8[RequireComponent(typeof(SteamVR_TrackedObject))]
9#endif
10public class TrackerFinder : MonoBehaviour
11{
12#if !UNITY_WEBGL
13 private bool setupOk = false;
14 private SteamVR_TrackedObject svrto;
15
16 // Start is called before the first frame update
17 void Start()
18 {
19 svrto = GetComponent<SteamVR_TrackedObject>();
20 var sb = new StringBuilder(128);
21 ETrackedPropertyError error = ETrackedPropertyError.TrackedProp_Success;
22 for (uint i = 0; i < 17; i++)
23 {
24 sb.Clear();
25 if (OpenVR.System == null) return;
26
27 OpenVR.System.GetStringTrackedDeviceProperty(i, ETrackedDeviceProperty.Prop_RenderModelName_String, sb,
28 128, ref error);
29
30 var deviceclass = OpenVR.System.GetTrackedDeviceClass(i);
31
32 if (deviceclass == ETrackedDeviceClass.GenericTracker)
33 {
34 Debug.Log(sb.ToString());
35 svrto.index = (SteamVR_TrackedObject.EIndex)i;
36 setupOk = true;
37 break;
38 }
39 }
40 }
41
42 private void Update()
43 {
44 if (!setupOk)
45 {
46 var sb = new StringBuilder(128);
47 ETrackedPropertyError error = ETrackedPropertyError.TrackedProp_Success;
48 for (uint i = 0; i < 17; i++)
49 {
50 sb.Clear();
51 if (OpenVR.System != null)
52 {
53 OpenVR.System.GetStringTrackedDeviceProperty(i, ETrackedDeviceProperty.Prop_RenderModelName_String,
54 sb,
55 128, ref error);
56
57 var deviceclass = OpenVR.System.GetTrackedDeviceClass(i);
58
59 if (deviceclass == ETrackedDeviceClass.GenericTracker || sb.ToString().Contains("tracker_vive"))
60 {
61 Debug.Log(sb.ToString());
62 svrto.index = (SteamVR_TrackedObject.EIndex) i;
63 setupOk = true;
64 break;
65 }
66 }
67 }
68 }
69 }
70#endif
71}
UnityEngine.Debug Debug
Definition: TanodaServer.cs:19