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()); }
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; } } } } }
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 ()); }
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; } } } } }