Vitesse du véhicule qui change toute seule

Pour les scripts écrits en C#
Règles du forum
Merci de respecter la NOMENCLATURE suivante pour vos TITRES de messages :

Commencez par le niveau de vos scripts
DB = Débutant
MY = Moyen
CF = Confirmé

Puis le domaine d'application
-RS = Réseau
-AL = Algorithmie

Exemple :

[DB-RS] Mouvement perso multijoueur
Avatar de l’utilisateur
Diridium
Messages : 24
Inscription : 11 Jan 2018 10:21

Vitesse du véhicule qui change toute seule

Message par Diridium » 14 Jan 2018 18:09

Bonjour,

Je crée un sujet car j'ai un petit problème (je ne sais pas si on peut appeler ça un problème).
Alors voilà, je vous explique : J'ai un véhicule dans ma scène, je peux me déplacer avec etc.. jusque là tout va bien mais quand je clique sur "maximize on play" donc pour mettre l'onglet Game en plein écran, le véhicule est beaucoup plus lent que si je lance le jeu avec un onglet en mode normal (pas en plein écran). J'aimerais savoir si c'est normal, peut-être qu'il y a un conflit avec mon script ?

Voici mon script (au cas où) :

Code : Tout sélectionner

using UnityEngine.UI;
using UnityEngine;

public class CarController : MonoBehaviour {

    public GameObject tractor;
    public Text TxtSpeed;
    public WheelCollider front_left;
    public WheelCollider front_right;
    public WheelCollider back_left;
    public WheelCollider back_right; 
   
    public Transform FL;
    public Transform FR;
    public Transform BL;
    public Transform BR;

    public float Torque = 20000;
    public float Speed;
    public float MaxSpeed = 40f;
    public int Brake = 10000;
    public float CoefAcceleration = 5f;
    public float WheelAngleMax = 10f;
	public bool Freinage = false;

       void Start()
       {
        //Réglage du centerOfMass
        GetComponent<Rigidbody>().centerOfMass = new Vector3(0f, -3f , 0f);
       }

      void Update() {

		//Son du moteur
		tractor.GetComponent<AudioSource> ().pitch = Speed / MaxSpeed + 1f;
		 
		//Affichage de la vitesse
		Speed = GetComponent<Rigidbody> ().velocity.magnitude * 3.6f;
		TxtSpeed.text = "Vitesse (km/h): " + (int)Speed;

		//Acceleration
		if(Input.GetKey (KeyCode.UpArrow) && Speed < MaxSpeed) {
			if (!Freinage) {
				front_left.brakeTorque = 0;
				front_right.brakeTorque = 0;
				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;
			}
		}
        
		//Décélération
		if(!Input.GetKey (KeyCode.UpArrow) && !Freinage || Speed>MaxSpeed) {
            back_left.motorTorque = 0;
			back_right.motorTorque = 0;
			back_left.brakeTorque = Brake * CoefAcceleration * Time.deltaTime;
			back_right.brakeTorque = Brake * CoefAcceleration * Time.deltaTime;
		}

		//Direction du véhicule
		front_left.steerAngle = Input.GetAxis ("Horizontal") * WheelAngleMax;
		front_right.steerAngle = Input.GetAxis ("Horizontal") * WheelAngleMax;

		//Freinage
		if(Input.GetKey (KeyCode.DownArrow)) {
			Freinage = true;
            back_left.brakeTorque = Mathf.Infinity;
			back_right.brakeTorque = Mathf.Infinity;
			front_left.brakeTorque = Mathf.Infinity;
			front_right.brakeTorque = Mathf.Infinity;
			back_left.motorTorque = 0;
			back_right.motorTorque = 0;
		} else {
			Freinage = false;
		}

        //Marche arrière
        if(Input.GetKey(KeyCode.V) && !Freinage && Speed < MaxSpeed)
        {
            MaxSpeed = 40f;
            Torque = -10000;
            front_left.brakeTorque = 0;
		    front_right.brakeTorque = 0;
		    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;
        }else{
            Torque = 20000;
        }
    
        //Rotation des roues
        FL.Rotate(front_left.rpm /60 * 360 * Time.deltaTime,0,0);
        FR.Rotate(front_right.rpm /60 * 360 * Time.deltaTime,0,0);
        BL.Rotate(back_left.rpm /60 * 360 * Time.deltaTime,0,0);
        BR.Rotate(back_right.rpm /60 * 360 * Time.deltaTime,0,0);

        //SteerAngle (Rotation des mesh des roues)
        FL.localEulerAngles = new Vector3(FL.localEulerAngles.x, front_left.steerAngle - FL.localEulerAngles.z, FL.localEulerAngles.z);
        FR.localEulerAngles = new Vector3(FR.localEulerAngles.x, front_right.steerAngle - FR.localEulerAngles.z, FR.localEulerAngles.z);

    }
}

Avatar de l’utilisateur
Max
Messages : 8801
Inscription : 30 Juil 2011 13:57
Contact :

Re: Vitesse du véhicule qui change toute seule

Message par Max » 14 Jan 2018 19:05

Bonsoir,
Diridium a écrit :
14 Jan 2018 18:09
quand je clique sur "maximize on play" donc pour mettre l'onglet Game en plein écran, le véhicule est beaucoup plus lent que si je lance le jeu avec un onglet en mode normal (pas en plein écran).
ben, n'as tu pas simplement une chute de framerate quand tu passes en full screen ?
Image
Pas d'aide par MP, le forum est là pour ça.
En cas de doute sur les bonnes pratiques à adopter sur le forum, consulter la Charte et sa FAQ

Avatar de l’utilisateur
Diridium
Messages : 24
Inscription : 11 Jan 2018 10:21

Re: Vitesse du véhicule qui change toute seule

Message par Diridium » 15 Jan 2018 09:29

Bonjour,

Non j'ai mes fps affichés en haut de l'écran (j'ai même créé un script pour ça) et ils sont fixes.
Et mon compteur de vitesse affiche une vitesse égale mais j'ai l'impression que la Torque (accélération) du véhicule triple quand je suis pas en plein écran. C'est vraiment étrange :/

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 6266
Inscription : 28 Avr 2014 11:57
Localisation : Saint-Didier-en-Bresse (71)

Re: Vitesse du véhicule qui change toute seule

Message par boubouk50 » 15 Jan 2018 11:03

N'est-ce pas justement juste une impression?
Il n'y a aucun lien direct entre le fenêtrage et ton véhicule. Ce n'est juste pas possible avec un framerate fixe.
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation

Avatar de l’utilisateur
Diridium
Messages : 24
Inscription : 11 Jan 2018 10:21

Re: Vitesse du véhicule qui change toute seule

Message par Diridium » 15 Jan 2018 12:01

Bonjour,

C'est surement ça et j'espère surtout ^^
Mais c'est vraiment flagrant quand j'avance avec le véhicule :/

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 6266
Inscription : 28 Avr 2014 11:57
Localisation : Saint-Didier-en-Bresse (71)

Re: Vitesse du véhicule qui change toute seule

Message par boubouk50 » 15 Jan 2018 12:10

Je me suis pas tapé tout le code à lire et à comprendre, mais ce qui joue normalement sur la vitesse c'est le framerate lorsque les variables ne dépendent pas de Time.deltaTime.
Si ton framerate est fixe, alors tu ne devrais pas (trop) avoir de différence, sinon il manque des dépendances avec le framerate, donc Time.deltaTime.
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation

Avatar de l’utilisateur
Diridium
Messages : 24
Inscription : 11 Jan 2018 10:21

Re: Vitesse du véhicule qui change toute seule

Message par Diridium » 15 Jan 2018 12:14

Oui, tout à raison je pense que ça doit venir de ça, je vais essayer de régler ça mais d'abord j'ai un autre problème avec un véhicule à régler ^^

Répondre

Revenir vers « (C#) CSharp »