SteamVRTrack.cs 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. using System.Collections.Generic;
  2. using Newtonsoft.Json;
  3. using UnityEngine;
  4. using Valve.VR;
  5. using TrackpointApp;
  6. public class SteamVRTrack : AbstractTrackingSystem
  7. {
  8. public int rotationCorrection;
  9. private SteamVR_TrackedObject tracking;
  10. // Start is called before the first frame update
  11. void Start()
  12. {
  13. generalSetup();
  14. trackpointMesh.setup(filePath, TrackingSystem.SteamVRTrack);
  15. TrackpointData data = loadMetaData();
  16. if (data == null)
  17. {
  18. return;
  19. }
  20. setupTrackpointTranslation(data);
  21. setupTrackpointRotation(data, rotationCorrection);
  22. setupActionPoints();
  23. tracking = gameObject.AddComponent<SteamVR_TrackedObject>();
  24. tracking.index = (SteamVR_TrackedObject.EIndex)1;
  25. }
  26. TrackpointData loadMetaData()
  27. {
  28. string metadata = trackpointMesh.getMetaData(TrackingSystem.SteamVRTrack);
  29. List<TrackpointData> metaObject = JsonConvert.DeserializeObject<List<TrackpointData>>(metadata);
  30. if (metaObject.Count != 1)
  31. {
  32. Debug.Log("TrackpointApp Error: Only one tracker per element supported for SteamVR.");
  33. return null;
  34. }
  35. return metaObject[0];
  36. }
  37. }