private static TrafficLightToggle getInstance() { if (instance == null) { instance = new TrafficLightToggle(); } return(instance); }
private static void CreateTrafficLightColliders() { // For each pos in TrafficLightsForPos, register an entry in TrafficLightToggle, with position and radius foreach (KeyValuePair <long, List <TrafficLightLogic> > trafficLightGroup in TrafficLightsForPos) { long posId = trafficLightGroup.Key; Pos centerPos = NodeIndex.getPosById(posId); float maxDistance = 0f; Vector3 centerPosCameraPosition = Game.getCameraPosition(centerPos); // Get max distance from crossing foreach (TrafficLightLogic trafficLight in trafficLightGroup.Value) { maxDistance = Mathf.Max(Vector2.Distance(trafficLight.transform.position, centerPosCameraPosition), maxDistance); } // Double the maxDistance to get a somewhat bigger touch area TrafficLightToggle.Add(posId, centerPosCameraPosition, maxDistance * 2f); } TrafficLightToggle.Start(); }