1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- using System;
- using System.Diagnostics;
- using System.Text;
- using UnityEngine;
- using Valve.VR;
- using Debug = UnityEngine.Debug;
- namespace Tracking
- {
- public class IdentifyTrackers : MonoBehaviour
- {
-
- private void OnEnable() {
- SteamVR_Events.DeviceConnected.Listen(OnDeviceConnected);
- }
-
- private void OnDeviceConnected(int index, bool connected)
- {
- if (index < 0) return;
- if(connected) {
- if(OpenVR.System != null) {
- //lets figure what type of device got connected
- ETrackedDeviceClass deviceClass = OpenVR.System.GetTrackedDeviceClass((uint)index);
- ETrackedPropertyError error = ETrackedPropertyError.TrackedProp_UnknownProperty;
- StringBuilder serialNumberBuilder = new StringBuilder();
- var result = OpenVR.System.GetStringTrackedDeviceProperty((uint)index,
- ETrackedDeviceProperty.Prop_ControllerType_String, serialNumberBuilder, 32, ref error);
-
-
- if(deviceClass == ETrackedDeviceClass.Controller) {
- Debug.Log("Controller got connected at index:" + index);
- } else if(deviceClass == ETrackedDeviceClass.GenericTracker) {
- Debug.Log("Tracker got connected at index:" + index);
- Debug.Log("With serial number:" + serialNumberBuilder.ToString());
- }
- }
- else
- {
- Debug.LogWarning("No VR System");
- }
- }
- }
- }
- }
|