コード例 #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;
        }
    }
コード例 #2
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);
        }
    }