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