コード例 #1
0
    void SetSpeedLimit()
    {
        CarExternalInputAutoPathAdvanced autoPath = transform.parent.gameObject.GetComponent <CarExternalInputAutoPathAdvanced>();

        if (autoPath != null)
        {
            speedLimitImage.enabled = true;
            switch (Mathf.RoundToInt(autoPath.limiteVelocita))
            {
            case 45:
            {
                speedLimitImage.sprite = ResourceHandler.instance.sprites[32];
            }
            break;

            case 60:
            {
                speedLimitImage.sprite = ResourceHandler.instance.sprites[34];
            }
            break;

            case 75:
            {
                speedLimitImage.sprite = ResourceHandler.instance.sprites[35];
            }
            break;
            }
        }
    }
コード例 #2
0
    void SetSpeed()
    {
        CarExternalInputAutoPathAdvanced autoPath = transform.parent.gameObject.GetComponent <CarExternalInputAutoPathAdvanced>();
        float speedLimit = 0f;

        if (autoPath != null)
        {
            speedLimit = autoPath.limiteVelocita;
        }
        else
        {
            speedLimit = 75f;
        }

        float           speedToShow     = Mathf.RoundToInt(rb.velocity.magnitude * 3.6f);
        TextMeshProUGUI textMeshProUGUI = speed.GetComponent <TextMeshProUGUI>();

        if (speedToShow > speedLimit)
        {
            textMeshProUGUI.color = Color.red;
        }
        else
        {
            textMeshProUGUI.color = Color.white;
        }
        speed.GetComponent <TextMeshProUGUI>().text = speedToShow.ToString(); //speed in kph
    }
コード例 #3
0
    private void AvviaGuidaAutomatica()
    {
        car.GetComponent <VehicleInputController>().enabled = false;
        car.AddComponent <GuidaManualePCH>();

        CarExternalInputAutoPathAdvanced newAp = car.GetComponent <CarExternalInputAutoPathAdvanced>();

        if (newAp == null)
        {
            newAp = car.AddComponent <CarExternalInputAutoPathAdvanced>();
        }
        else
        {
            newAp.enabled = true;
        }

        newAp.ChangeProperty   += new CarExternalInputAutoPathAdvanced.Delegato(gestisciEvento);
        newAp.waypointThreshold = 4f;
        newAp.maxBrake          = 1f;
        newAp.maxThrottle       = 0.7f;
        //newAp.steerSpeed = 10f;
        newAp.steerSpeed    = 10f;
        newAp.throttleSpeed = 1f;
        newAp.brakeSpeed    = 0.5f;

        newAp.normalAdd  = 0f;
        newAp.pathRadius = 0.35f;

        newAp.path = carAutoPath;
        if (metaPercorso)
        {
            newAp.maxSpeed = 11f;
            newAp.waypoint = 1870;
        }
        else
        {
            newAp.maxSpeed = 18f;
            newAp.waypoint = 1559;
        }
        Transform posizioneRaycast = null;

        foreach (Transform go in car.GetComponentsInChildren <Transform>())
        {
            if (go.name.Equals("rayCastPos"))
            {
                posizioneRaycast = go;
                break;
            }
        }
        newAp.raycastOrigin  = posizioneRaycast;
        newAp.limiteVelocita = 75f;
        newAp.Init();
        guidaAutomatica = newAp;
    }
コード例 #4
0
ファイル: VehicleController.cs プロジェクト: anto1192/TesiOk
    void Volant()
    {
        angle1Ref    = Mathf.MoveTowards(angle1Ref, steerInput, Time.deltaTime);
        angle2Volant = Mathf.MoveTowards(angle2Volant, steerInput, Time.deltaTime);
        //
        maxAngleVolant = 35.0f * angle_x_Velocity.Evaluate(currentSpeed);
        angleRefVolant = Mathf.Clamp(angle1Ref * maxAngleVolant, -maxAngleVolant, maxAngleVolant);

        //if (angle1Ref > 0.2f)
        //{
        //    if (axles[0].steering /*_wheels.rightFrontWheel.wheelTurn*/)
        //    {
        //        //_wheels.rightFrontWheel.wheelCollider.steerAngle = angleRefVolant * 1.2f;
        //        axles[0].right.steerAngle = angleRefVolant * 1.2f;
        //    }
        //    if (axles[0].steering /*_wheels.leftFrontWheel.wheelTurn*/)
        //    {
        //        //_wheels.leftFrontWheel.wheelCollider.steerAngle = angleRefVolant;
        //        axles[0].left.steerAngle = angleRefVolant;
        //    }
        //    if (axles[1].steering/*_wheels.rightRearWheel.wheelTurn*/)
        //    {
        //        //_wheels.rightRearWheel.wheelCollider.steerAngle = angleRefVolant * 1.2f;
        //        axles[1].right.steerAngle = angleRefVolant * 1.2f;
        //    }
        //    if (axles[1].steering /*_wheels.leftRearWheel.wheelTurn*/)
        //    {
        //        //_wheels.leftRearWheel.wheelCollider.steerAngle = angleRefVolant;
        //        axles[1].left.steerAngle = angleRefVolant;
        //    }
        //}
        //else if (angle1Ref < -0.2f)
        //{
        //    if (axles[0].steering/*_wheels.rightFrontWheel.wheelTurn*/)
        //    {
        //        axles[0].right.steerAngle = angleRefVolant;
        //        //_wheels.rightFrontWheel.wheelCollider.steerAngle = angleRefVolant;
        //    }
        //    if (axles[0].steering/*_wheels.leftFrontWheel.wheelTurn*/)
        //    {
        //        axles[0].left.steerAngle = angleRefVolant * 1.2f;
        //        //_wheels.leftFrontWheel.wheelCollider.steerAngle = angleRefVolant * 1.2f;
        //    }
        //    if (axles[1].steering/*_wheels.rightRearWheel.wheelTurn*/)
        //    {
        //        axles[1].right.steerAngle = angleRefVolant;
        //        //_wheels.rightRearWheel.wheelCollider.steerAngle = angleRefVolant;
        //    }
        //    if (axles[1].steering/*_wheels.leftRearWheel.wheelTurn*/)
        //    {
        //        axles[1].left.steerAngle = angleRefVolant * 1.2f;
        //        //_wheels.leftRearWheel.wheelCollider.steerAngle = angleRefVolant * 1.2f;
        //    }
        //}
        //else
        //{
        //    if (axles[0].steering/*_wheels.rightFrontWheel.wheelTurn*/)
        //    {
        //        axles[0].right.steerAngle = angleRefVolant;
        //        //_wheels.rightFrontWheel.wheelCollider.steerAngle = angleRefVolant;
        //    }
        //    if (axles[0].steering/*_wheels.leftFrontWheel.wheelTurn*/)
        //    {
        //        axles[0].left.steerAngle = angleRefVolant;
        //        //_wheels.leftFrontWheel.wheelCollider.steerAngle = angleRefVolant;
        //    }
        //    if (axles[1].steering/*_wheels.rightRearWheel.wheelTurn*/)
        //    {
        //        axles[1].right.steerAngle = angleRefVolant;
        //        //_wheels.rightRearWheel.wheelCollider.steerAngle = angleRefVolant;
        //    }
        //    if (axles[1].steering/*_wheels.leftRearWheel.wheelTurn*/)
        //    {
        //        axles[1].left.steerAngle = angleRefVolant;
        //        //_wheels.leftRearWheel.wheelCollider.steerAngle = angleRefVolant;
        //    }
        //}

        if (volant)
        {
            CarExternalInputAutoPathAdvanced carExt = gameObject.GetComponent <CarExternalInputAutoPathAdvanced>();
            if (carExt != null)
            {
                /*if (carExt.sbacchettamento)
                 * {
                 *  volant.transform.localEulerAngles = new Vector3(volant.transform.localEulerAngles.x, volant.transform.localEulerAngles.y, volantStartRotation + (angle2VolantPrecedente * 443.0f));
                 *  return;
                 * }*/
                /*if((angle2VolantPrecedente < 0 && angle2Volant > 0) || (angle2VolantPrecedente > 0 && angle2Volant < 0))
                 * {
                 *  volant.transform.localEulerAngles = new Vector3(volant.transform.localEulerAngles.x, volant.transform.localEulerAngles.y, volantStartRotation + (angle2VolantPrecedente * 443.0f));
                 *  angle2VolantPrecedente = angle2Volant;
                 *  return;
                 * }*/
                if (carExt.sbacchettamento && !carExt.sbacchettamentoEvitabile)
                {
                    float sterzata;
                    if (carExt.sbacchettamentoForte)
                    {
                        sterzata = Mathf.Lerp(angle2VolantPrecedente, angle2Volant, 2f * Time.fixedDeltaTime);
                    }
                    else
                    {
                        sterzata = Mathf.Lerp(angle2VolantPrecedente, angle2Volant, 5f * Time.fixedDeltaTime);
                    }
                    volant.transform.localEulerAngles = new Vector3(volant.transform.localEulerAngles.x, volant.transform.localEulerAngles.y, volantStartRotation + (sterzata * 443.0f));
                    angle2VolantPrecedente            = sterzata;
                    return;
                }
            }
            volant.transform.localEulerAngles = new Vector3(volant.transform.localEulerAngles.x, volant.transform.localEulerAngles.y, volantStartRotation + (angle2Volant * 443.0f));
            angle2VolantPrecedente            = angle2Volant;
        }
    }