Ejemplo n.º 1
0
    private IEnumerator ChangeState()
    {
        while (true)
        {
            while (_currentCWState == CrosswalkState.CWS_Green)
            {
                curTimeToOrange -= Time.deltaTime;
                if (curTimeToOrange <= 0.0f)
                {
                    _currentCWState = CrosswalkState.CWS_Orange;
                    curTimeToRed    = timeToRed;
                    greenLightObj.SetActive(false);
                    orangeLightObj.SetActive(true);
                    myCrossWalkTrigger.UpdateState(currentCWState);
                    break;
                }
                yield return(null);
            }

            while (_currentCWState == CrosswalkState.CWS_Orange)
            {
                curTimeToRed -= Time.deltaTime;
                if (curTimeToRed <= 0.0f)
                {
                    _currentCWState = CrosswalkState.CWS_Red;
                    curTimeToGreen  = timeToGreen;
                    orangeLightObj.SetActive(false);
                    redLightObj.SetActive(true);
                    myCrossWalkTrigger.UpdateState(currentCWState);
                    break;
                }
                yield return(null);
            }

            while (_currentCWState == CrosswalkState.CWS_Red)
            {
                curTimeToGreen -= Time.deltaTime;
                if (curTimeToGreen <= 0.0f)
                {
                    _currentCWState = CrosswalkState.CWS_Green;
                    curTimeToOrange = timeToOrange;
                    redLightObj.SetActive(false);
                    greenLightObj.SetActive(true);
                    myCrossWalkTrigger.UpdateState(currentCWState);
                    break;
                }
                yield return(null);
            }

            yield return(null);
        }
    }
Ejemplo n.º 2
0
    private void Start()
    {
        if (!hasStreetLight)
        {
            return;
        }

        curTimeToGreen  = timeToGreen;
        curTimeToOrange = timeToOrange;
        curTimeToRed    = timeToRed;

        if (_currentCWState == CrosswalkState.CWS_Green)
        {
            greenLightObj.SetActive(true);
            orangeLightObj.SetActive(false);
            redLightObj.SetActive(false);
        }
        if (_currentCWState == CrosswalkState.CWS_Red)
        {
            greenLightObj.SetActive(false);
            orangeLightObj.SetActive(false);
            redLightObj.SetActive(true);
        }

        myCrossWalkTrigger = transform.GetChild(0).gameObject.GetComponent <CrosswalkTrigger> ();
        myCrossWalkTrigger.UpdateState(currentCWState);
        StartCoroutine(ChangeState());
    }
Ejemplo n.º 3
0
    private void Start()
    {
        if (!hasStreetLight)
            return;

        curTimeToGreen = timeToGreen;
        curTimeToOrange = timeToOrange;
        curTimeToRed = timeToRed;

        if(_currentCWState == CrosswalkState.CWS_Green)
        {
            greenLightObj.SetActive(true);
            orangeLightObj.SetActive(false);
            redLightObj.SetActive(false);
        }
        if(_currentCWState == CrosswalkState.CWS_Red)
        {
            greenLightObj.SetActive(false);
            orangeLightObj.SetActive(false);
            redLightObj.SetActive(true);
        }

        myCrossWalkTrigger = transform.GetChild (0).gameObject.GetComponent<CrosswalkTrigger> ();
        myCrossWalkTrigger.UpdateState(currentCWState);
        StartCoroutine (ChangeState ());
    }