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