Accueil Forums J’ai besoin d’aide Unity3D soucis (voiture 3d)

Ce sujet a 4 réponses, 2 participants et a été mis à jour par  Dpg, il y a 5 mois et 3 semaines.

5 sujets de 1 à 5 (sur un total de 5)
  • Auteur
    Messages
  • #776

    skytix29
    Participant

    Bonjour, j’ai remarqué que la vitesse en reculon est infinie j’aimerais de l’aide pour rajouter des ligne qui dit que la vitesse max en reculon est de 60 et pas au dessu

    mon script:
    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    using UnityEngine.UI;

    public class controlevehicule : MonoBehaviour {

    public Text txtspeed;
    public WheelCollider front_left;
    public WheelCollider front_right;
    public WheelCollider back_left;
    public WheelCollider back_right;
    public float torque;
    public float speed;
    public float maxspeed = 200f;
    public int brake = 10000;
    public float coefacceleration = 10f;
    public float wheelanglemax = 10f;
    public bool frein = false;
    public GameObject backlight;
    public float damax = 40f;

    void Start () {
    //antirenver

    GetComponent<Rigidbody>().centerOfMass = new Vector3(0f, -0.9f, 0.2f);

    }

    void Update() {
    //motson
    float val_pitch = speed / maxspeed + 1.5f;
    GetComponent<AudioSource>().pitch = Mathf.Clamp(val_pitch, 1f, 3f);

    //compteur vitesse du vehi
    speed = GetComponent<Rigidbody>().velocity.magnitude * 3.6f;
    txtspeed.text = “speed : ” + (int)speed;

    //acce du vehicule
    if (Input.GetKey(KeyCode.UpArrow) && speed < maxspeed)
    {
    if (!frein)
    {
    back_left.brakeTorque = 0;
    back_right.brakeTorque = 0;
    back_left.motorTorque = Input.GetAxis(“Vertical”) * torque * coefacceleration * Time.deltaTime;
    back_right.motorTorque = Input.GetAxis(“Vertical”) * torque * coefacceleration * Time.deltaTime;
    }

    }

    //stop accelera
    if (!Input.GetKey(KeyCode.UpArrow) && !frein || speed > maxspeed)
    {
    front_left.brakeTorque = 0;
    front_right.brakeTorque = 0;
    back_left.motorTorque = 0;
    back_right.motorTorque = 0;
    back_left.brakeTorque = brake * coefacceleration * Time.deltaTime;
    back_right.brakeTorque = brake * coefacceleration * Time.deltaTime;
    }

    //direc du vehicle
    float DA = (((wheelanglemax – damax) / maxspeed)* speed )+ damax;
    Debug.Log(DA);

    front_left.steerAngle = Input.GetAxis(“Horizontal”) * DA;
    front_right.steerAngle = Input.GetAxis(“Horizontal”) * DA;

    //frein
    if (Input.GetKey(KeyCode.Space))
    {
    backlight.SetActive(true);
    frein = true;
    back_right.motorTorque = 0;
    back_left.motorTorque = 0;
    back_left.brakeTorque = 900000;
    back_right.brakeTorque = 900000;
    front_left.brakeTorque = 900000;
    front_right.brakeTorque = 900000;

    }
    else frein = false;
    backlight.SetActive(false);

    //reculon
    if (Input.GetKey(KeyCode.S))
    {
    back_left.brakeTorque = 0;
    back_right.brakeTorque = 0;
    back_left.motorTorque = Input.GetAxis(“Vertical”) * torque * coefacceleration * Time.deltaTime;
    back_right.motorTorque = Input.GetAxis(“Vertical”) * torque * coefacceleration * Time.deltaTime;
    }
    //feux et particule
    if (Input.GetKey(KeyCode.Space))
    {
    backlight.SetActive(true);

    }
    if (Input.GetKey(KeyCode.S))
    {
    backlight.SetActive(true);
    }

    }
    }

    #777

    Dpg
    Participant

    Bonjour, et bien comme pour l’accélération où tu limite “speed < maxSpeed”.

    Tu récréer une autre variable “maxSpeedReverse” par exemple, et dans ton “if (Input.GetKey(KeyCode.S))” tu rajoute ta condition.

    if (Input.GetKey(KeyCode.S) && speed < mawSpeedReverse)

    Cela devrait fonctionner.

    #780

    skytix29
    Participant

    Cela n’a pas fonctionné j’avais déjà essayer de cette manière.

    #781

    skytix29
    Participant

    enfaîte c’est bon c’est juste que je me trompais dans l’emplacement ^^^^

    #788

    Dpg
    Participant

    super ^^

5 sujets de 1 à 5 (sur un total de 5)

Vous devez être connecté pour répondre à ce sujet.