Ejemplo n.º 1
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.º 2
0
    private void LookForObstacles()
    {
        if (isTurning)
        {
            return;
        }

        //Debug.DrawLine (transform.position + transform.right, transform.position + transform.right * 5.0f, Color.cyan, 0.15f);
        RaycastHit[] hits = Physics.SphereCastAll(transform.position + transform.right, 1.0f, transform.right, 2.5f);
        if (hits.Length > 0)
        {
            foreach (RaycastHit hit in hits)
            {
                if (hit.collider.gameObject.CompareTag("Crosswalk Trigger"))
                {
                    if (currentCrosswalk == hit.collider.gameObject)
                    {
                        continue;
                    }

                    if (currentCrosswalk == null || currentCrosswalk != hit.collider.gameObject)
                    {
                        currentCrosswalk = hit.collider.gameObject;
                    }

                    currentCrosswalkScript = currentCrosswalk.GetComponent <CrosswalkTrigger>();

                    currentCrosswalkScript.OnGreenLight  += HandleOnGreenLight;
                    currentCrosswalkScript.OnOrangeLight += HandleOnOrangeLight;;
                    currentCrosswalkScript.OnRedLight    += HandleOnRedLight;

                    if (currentCrosswalkScript.currentState == CrossWalk.CrosswalkState.CWS_Green || currentCrosswalkScript.currentState == CrossWalk.CrosswalkState.CWS_Orange)
                    {
                        StartCoroutine(Decelerate(0.0f));
                        cannotAccelerate = true;
                    }
                }
            }
        }
    }
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 ());
    }
Ejemplo n.º 4
0
    private void LookForObstacles()
    {
        if (isTurning)
            return;

        //Debug.DrawLine (transform.position + transform.right, transform.position + transform.right * 5.0f, Color.cyan, 0.15f);
        RaycastHit[] hits = Physics.SphereCastAll(transform.position + transform.right, 1.0f, transform.right, 2.5f);
        if(hits.Length > 0)
        {
            foreach (RaycastHit hit in hits)
            {
                if(hit.collider.gameObject.CompareTag("Crosswalk Trigger"))
                {
                    if(currentCrosswalk == hit.collider.gameObject)
                        continue;

                    if(currentCrosswalk == null || currentCrosswalk != hit.collider.gameObject)
                        currentCrosswalk = hit.collider.gameObject;

                    currentCrosswalkScript = currentCrosswalk.GetComponent<CrosswalkTrigger>();

                    currentCrosswalkScript.OnGreenLight += HandleOnGreenLight;
                    currentCrosswalkScript.OnOrangeLight += HandleOnOrangeLight;;
                    currentCrosswalkScript.OnRedLight += HandleOnRedLight;

                    if(currentCrosswalkScript.currentState == CrossWalk.CrosswalkState.CWS_Green || currentCrosswalkScript.currentState == CrossWalk.CrosswalkState.CWS_Orange)
                    {
                        StartCoroutine(Decelerate(0.0f));
                        cannotAccelerate = true;
                    }
                }
            }
        }
    }