Quantcast
Channel: Questions in topic: "vehicles"
Viewing all articles
Browse latest Browse all 123

My car is shaking [Wheel colliders]

$
0
0
Hey everybody ! I'm making a racing game but i have a problem, i make a track with blender but my vehicule is always shaking and it overturn... Some one can help me ? for wheel colliders i use the properties of the standart asset vehicule (i just changed the radius), my vehicule has a scale of 3 3 3 and this is my vehicule controller (i have only 2 scripts) : using UnityEngine; using System.Collections; using UnityEngine.Networking; //multiplayer using UnityEngine.UI; public class PlayerController : NetworkBehaviour { public GameObject Detector; public Text lapsText; public int lapsNumber; public Camera cam; // Déclaration des roues public WheelCollider[] wheelColliders; // Déclaration des graphismes des roues public Transform[] wheels; // Puissance des roues public float maxTorque = 50; //Rigidbody rb; pas encore utilisé void Start () { lapsNumber = 0; if (!isLocalPlayer) { cam.enabled = false; } if (isLocalPlayer) { cam.enabled = true; } // RigidBody //rb = GetComponent(); pas encore utilisé } void FixedUpdate () { if (!isLocalPlayer) return; // Si ce n'est pas le joueur, ne rien faire float steer = Input.GetAxis("Horizontal"); // Permet de tourner float accelerate = Input.GetAxis("Vertical"); // Permet d'avancer ou de reculer float finalAngle = steer * 45f; // angle des roues avant max (pour tourner) wheelColliders[0].steerAngle = finalAngle; wheelColliders[1].steerAngle = finalAngle; // le << Vertical >> désigne les touches "w" et "s" (WASD) ou les fleches directionelles haut et bas // le << Horizontal >> désigne les touches "a" et "d" (WASD) ou les fleches directionelles gauche et droite // application de la puissance for (int i = 0; i < wheelColliders.Length; i++) // wheelColliders.Length est le nombre de roues { wheelColliders[i].motorTorque = accelerate * maxTorque; } // On peut modifier les touches par défaut. } void Update() { UpdateMeshesPosition(); } void UpdateMeshesPosition() { for(int i = 0; i < wheels.Length; i++) { Quaternion quad; Vector3 pos; wheelColliders[i].GetWorldPose(out pos, out quad); // enregistrer la posirtion et la rotation //applique la position et la rotation sur les graphismes des roues wheels[i].position = pos; wheels[i].rotation = new Quaternion(quad.x, quad.y, quad.z, quad.w); } } public void AddLap() { lapsNumber = lapsNumber + 1; lapsText.text = lapsNumber + ""; } } Thank you ! bye, xyHeat

Viewing all articles
Browse latest Browse all 123

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>