Beispiel #1
0
    private void FixedUpdate()
    {
        transform.position += transform.forward * Time.deltaTime * (speed * speedMultiplier);

        if (Physics.Raycast(transform.position + raycastOffset, transform.forward, out hit, dist, layerToHit))
        {
            if (STOP_MOVING)
            {
                return;
            }

            int hitLayer = hit.transform.gameObject.layer;

            if (hitLayer == LayerMask.NameToLayer("Vehicle"))
            {
                STOP_MOVING = true;
                SlowDownCar();
                Debug.Log(hit.collider.gameObject);

                return;
            }

            if (hitLayer == LayerMask.NameToLayer("TrafficLights"))
            {
                STOP_MOVING = true;
                SlowDownCar();

                // 1 = North
                // 2 = East
                // 3 = South
                // 4 = West
                // Potentiallity to add turning here
                LightManager.TravelDirection directionToTravel = PickNextDirection(Random.Range(1, 2));
                hit.transform.GetComponent <LightReceiver>().ReceiveMessage(directionToTravel);
                Debug.Log(hit.collider.gameObject);

                return;
            }
        }
    }
 public void ReceiveMessage(LightManager.TravelDirection direction)
 {
     // Car is at lights now
     lightManager.ChangeLights(direction);
     //pathChecker.SetActive(true);
 }