예제 #1
0
 void OnTriggerExit(Collider col)
 {
     switch (col.gameObject.tag)
     {
     case Constants.TagIntentionToCrossA:
     case Constants.TagIntentionToCrossB:
         //Debug.Log("Bazou palhaço");
         IntentionToCrossController intentionController = col.transform.GetComponentInParent <IntentionToCrossController>();
         intentionController.intention = false;
         break;
     }
 }
    void OnTriggerEnter(Collider col)
    {
        switch (col.gameObject.tag)
        {
        case Constants.Tag.TagCrosswalk:
        case Constants.Tag.TagIntentionToCrossA:
        case Constants.Tag.TagIntentionToCrossB:
            IntentionToCrossController intentionController = col.transform.GetComponentInParent <IntentionToCrossController>();
            intentionController.RequestIntention(col.gameObject.tag);
            break;

        case Constants.Tag.TagVehicle:
            gameManager.DisplayGameOver();
            break;

        case Constants.Tag.TagObstacle:
            break;
        }
    }
예제 #3
0
    void OnTriggerEnter(Collider col)
    {
        switch (col.gameObject.tag)
        {
        case Constants.TagIntentionToCrossA:
        case Constants.TagIntentionToCrossB:
            //Debug.Log("QUer atravessar");
            IntentionToCrossController intentionController = col.transform.GetComponentInParent <IntentionToCrossController>();
            intentionController.intention = true;
            break;

        case Constants.TagVehicle:
            gameManager.DisplayGameOver();
            break;

        case Constants.TagObstacle:
            break;
        }
    }
    void OnTriggerEnter(Collider col)
    {
        switch (col.gameObject.tag)
        {
        // if encounters a crosswalk with the player about to cross, stop
        case Constants.Tag.TagVehicleStopZone:
            IntentionToCrossController intentionController = col.transform.GetComponentInParent <IntentionToCrossController>();

            if (intentionController != null && intentionController.HasIntention())
            {
                go = false;
                Invoke("Go", settings.vehicleSettings.vehicleCrosswalkWaitTime);
            }
            break;

        case Constants.Tag.TagVehicleStopZoneAvenueRight:
            TrafficLightsController trafficControllerR = col.transform.GetComponentInParent <TrafficLightsController>();
            trafficLightState = trafficControllerR.trafficRight;
            if (trafficControllerR != null && (trafficControllerR.trafficRight == TrafficLightState.Red || trafficControllerR.trafficRight == TrafficLightState.Yellow))
            {
                go = false;
            }

            break;

        case Constants.Tag.TagVehicleStopZoneAvenueLeft:
            TrafficLightsController trafficControllerL = col.transform.GetComponentInParent <TrafficLightsController>();
            trafficLightState = trafficControllerL.trafficRight;
            if (trafficControllerL != null && (trafficControllerL.trafficRight == TrafficLightState.Red || trafficControllerL.trafficRight == TrafficLightState.Yellow))
            {
                go = false;
            }

            break;


        // if encounters a car, means that the car's going slower. Must slow down and match his pace.
        // if the car is stopping, must stop too.
        case Constants.Tag.TagVehicleWarningZone:
            VehicleController carAhead = col.GetComponentInParent <VehicleController>();

            // if this event was thrown by the car behind
            if ((direction == Utils.VehicleDirection.Left && transform.position.x > carAhead.transform.position.x) || (direction == Utils.VehicleDirection.Right && transform.position.x < carAhead.transform.position.x))
            {
                brake += 0.03f;
                if (carAhead.go)
                {
                    maxSpeed = carAhead.maxSpeed;

                    if (carAhead.currentSpeed > currentSpeed)
                    {
                        currentSpeed = carAhead.currentSpeed;
                    }
                }
                else
                {
                    go = false;
                }
            }

            break;
        }
    }