private void AddLight(Tile[,] tileGrid, int tileX, int tileY, int bitIndex, int skipper) { StreetLightType streetLightType; if (skipper == citySkip) { streetLightType = StreetLightType.STREETLIGHTCITY; } else { streetLightType = StreetLightType.STREETLIGHTCOUNTRY; } StreetLight streetLight = MapObjectController.GetStreetLight(streetLightType, bitIndex); MapObject mapObject = new MapObject(streetLight, tileX, tileY, Color.White, 1f); tileGrid[tileX, tileY].AddMapObject(mapObject, false, false, true, null, false); }
void ChangeEastWestLightColor(StreetLight color) { Color lightColor = Color.white; switch (color) { case StreetLight.Green: lightColor = Color.green; break; case StreetLight.Red: lightColor = Color.red; break; case StreetLight.Yellow: lightColor = Color.yellow; break; } eastLightGFX.GetComponent <Renderer>().material.color = lightColor; westLightGFX.GetComponent <Renderer>().material.color = lightColor; }
public void LightChange(StreetLight light) { switch (light) { case StreetLight.Green: lightRed = false; agent.speed = startSpeed; StartCoroutine(MoveToNextWayPoint()); break; case StreetLight.Yellow: if (agent.remainingDistance < 20) { agent.speed = yieldSpeed; } lightRed = true; break; case StreetLight.Red: lightRed = true; break; } }
IEnumerator StartLightTimer() { switch (startLight) { case StartLight.NorthSouth: northSouthLight = StreetLight.Green; eastWestLight = StreetLight.Red; ChangeEastWestLightColor(eastWestLight); ChangeNorthSouthLightColor(northSouthLight); EastWestLightChange?.Invoke(eastWestLight); NorthSouthLightChange?.Invoke(northSouthLight); yield return(new WaitForSeconds(stopGoLightTime)); northSouthLight = StreetLight.Yellow; ChangeNorthSouthLightColor(northSouthLight); NorthSouthLightChange?.Invoke(northSouthLight); yield return(new WaitForSeconds(yieldLightTime)); northSouthLight = StreetLight.Red; eastWestLight = StreetLight.Green; ChangeEastWestLightColor(eastWestLight); ChangeNorthSouthLightColor(northSouthLight); EastWestLightChange?.Invoke(eastWestLight); NorthSouthLightChange?.Invoke(northSouthLight); yield return(new WaitForSeconds(stopGoLightTime)); eastWestLight = StreetLight.Yellow; ChangeEastWestLightColor(eastWestLight); EastWestLightChange?.Invoke(eastWestLight); yield return(new WaitForSeconds(yieldLightTime)); StartCoroutine(StartLightTimer()); break; case StartLight.EastWest: northSouthLight = StreetLight.Red; eastWestLight = StreetLight.Green; ChangeEastWestLightColor(eastWestLight); ChangeNorthSouthLightColor(northSouthLight); EastWestLightChange?.Invoke(eastWestLight); NorthSouthLightChange?.Invoke(northSouthLight); yield return(new WaitForSeconds(stopGoLightTime)); eastWestLight = StreetLight.Yellow; ChangeEastWestLightColor(northSouthLight); EastWestLightChange?.Invoke(northSouthLight); yield return(new WaitForSeconds(yieldLightTime)); northSouthLight = StreetLight.Green; eastWestLight = StreetLight.Red; ChangeEastWestLightColor(eastWestLight); ChangeNorthSouthLightColor(northSouthLight); EastWestLightChange?.Invoke(eastWestLight); NorthSouthLightChange?.Invoke(northSouthLight); yield return(new WaitForSeconds(stopGoLightTime)); northSouthLight = StreetLight.Yellow; ChangeNorthSouthLightColor(eastWestLight); NorthSouthLightChange?.Invoke(eastWestLight); yield return(new WaitForSeconds(yieldLightTime)); StartCoroutine(StartLightTimer()); break; } }