PersonManager.cs 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. using Assets.StreetLight.Adapters;
  2. using Assets.StreetLight.Interfaces;
  3. using Assets.StreetLight.Poco;
  4. using System.Collections;
  5. using System.Collections.Generic;
  6. using System.Collections.ObjectModel;
  7. using System.Runtime.CompilerServices;
  8. using UnityEngine;
  9. public class PersonManager : MonoBehaviour
  10. {
  11. public ObservableCollection<Person> Persons { get; set; }
  12. private IPersonDetector personDetector;
  13. void Start()
  14. {
  15. var cylinderUL = GameObject.Find("CylinderUL");
  16. var cylinderUR = GameObject.Find("CylinderUR");
  17. var cylinderDR = GameObject.Find("CylinderDR");
  18. var cylinderDL = GameObject.Find("CylinderDL");
  19. var sphere = GameObject.Find("Sphere");
  20. // World to Unity Position
  21. var calibrationVectors = new Dictionary<Vector3, Vector3> {
  22. { new Vector3(-0.5225359f, -2.012292f, 3.934204f), new Vector3(cylinderUL.transform.position.x, cylinderUL.transform.position.y, cylinderUL.transform.position.z) },
  23. { new Vector3(2.538264f, -2.015675f, 2.318164f), new Vector3(cylinderUR.transform.position.x, cylinderUR.transform.position.y, cylinderUR.transform.position.z) },
  24. { new Vector3(-1.551626f, -1.86093f, 2.275376f), new Vector3(cylinderDR.transform.position.x, cylinderDR.transform.position.y, cylinderDR.transform.position.z) },
  25. { new Vector3(-1.095514f, -1.981828f, 2.849167f), new Vector3(cylinderDL.transform.position.x, cylinderDL.transform.position.y, cylinderDL.transform.position.z) },
  26. { new Vector3(0.6326299f, -1.908295f, 2.349819f), new Vector3(cylinderDL.transform.position.x, cylinderDL.transform.position.y, cylinderDL.transform.position.z) },
  27. };
  28. var positionCalculator = new PositionCalculator(calibrationVectors);
  29. Persons = new ObservableCollection<Person>();
  30. personDetector = new ZedPersonDetector(FindObjectOfType<ZEDManager>(), positionCalculator);
  31. personDetector.PersonsDetected += PersonDetector_PersonsDetected;
  32. }
  33. private void PersonDetector_PersonsDetected(object sender, IEnumerable<Person> e)
  34. {
  35. foreach (var person in e)
  36. {
  37. Persons.Add(person);
  38. }
  39. }
  40. void Update()
  41. {
  42. }
  43. }