TrafficLightHandler.cs 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. using TrafficSimulation;
  5. public class TrafficLightHandler : MonoBehaviour
  6. {
  7. public Intersection intersection;
  8. public int lightPhase;
  9. public GameObject RedLight;
  10. public GameObject YellowLight;
  11. public GameObject GreenLight;
  12. public Color RedColor;
  13. public Color YellowColor;
  14. public Color GreenColor;
  15. public Color BlackColor;
  16. private int currentLight;
  17. // Start is called before the first frame update
  18. void Start()
  19. {
  20. }
  21. // Update is called once per frame
  22. void Update()
  23. {
  24. ManageLightChanges();
  25. }
  26. private void ManageLightChanges()
  27. {
  28. if(intersection.currentRedLightsGroup == lightPhase && currentLight != 3)
  29. {
  30. ChangeLight(3);
  31. currentLight = 3;
  32. }
  33. }
  34. private void ChangeLight(int lightToSet)
  35. {
  36. //turn off all lights
  37. RedLight.GetComponent<Renderer>().material.SetColor("Black", BlackColor);
  38. YellowLight.GetComponent<Renderer>().material.SetColor("Black", BlackColor);
  39. GreenLight.GetComponent<Renderer>().material.SetColor("Black", BlackColor);
  40. switch (lightToSet)
  41. {
  42. case (1): //green
  43. GreenLight.GetComponent<Renderer>().material.SetColor("Green", GreenColor);
  44. break;
  45. case (2): //yellow
  46. YellowLight.GetComponent<Renderer>().material.SetColor("Yellow", YellowColor);
  47. break;
  48. case (3): //red
  49. RedLight.GetComponent<Renderer>().material.SetColor("Red", RedColor);
  50. break;
  51. }
  52. }
  53. }