using System.Collections; using System.Collections.Generic; using UnityEngine; public class VehichleControl : MonoBehaviour { public InputController InputCtrl; [Tooltip("Set ref in order of FL, FR, RL, RR")] public WheelCollider[] WheelColliders; [Tooltip("Set ref of wheel meshes in order of FL, FR, RL, RR")] public Transform[] Wheels; public Transform CenterOfMass; public int Force; public int Angle; public int BrakeForce; private void Drive() { WheelColliders[0].motorTorque = WheelColliders[1].motorTorque = InputCtrl.Vertical * Force; } private void Steer() { WheelColliders[0].steerAngle = WheelColliders[1].steerAngle = InputCtrl.Horizontal * Angle; } private void Brake() { WheelColliders[0].brakeTorque = WheelColliders[1].brakeTorque = InputCtrl.Brake * BrakeForce; } private void UpdateWheelMovements() { for (var i = 0; i < Wheels.Length; i++) { Vector3 pos; Quaternion rot; WheelColliders[i].GetWorldPose(out pos, out rot); Wheels[i].transform.position = pos; Wheels[i].transform.rotation = rot; } } private void FixedUpdate() { Steer(); Drive(); Brake(); UpdateWheelMovements(); } private void Start() { GetComponent().centerOfMass = CenterOfMass.localPosition; } }