Esempio n. 1
0
        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;
    }
Esempio n. 3
0
    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;
        }
    }