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

Need help making only one car drive at a time

$
0
0
I am making an open world game and a want the ability for the player to get in a random vehicle and only that one to drive but currently they all drive lol using UnityEngine; using System.Collections; public class VehicleController : MonoBehaviour { public float maxTorque = 1000f; GameObject player; public Transform centerOfMass; public WheelCollider[] wheelColliders = new WheelCollider[4]; private Rigidbody m_rigidbody; public bool inCar = false; public bool driving = false; void Start() { player = GameObject.Find ("Player"); m_rigidbody = gameObject.GetComponent (); m_rigidbody.centerOfMass = centerOfMass.localPosition; } void Update() { if (Input.GetKeyDown (KeyCode.H)) { if (((player.GetComponent ().withinRange == true) || inCar == true)) { putPlayerInCar (); } } } void putPlayerInCar() { inCar = !inCar; if (inCar == true) { GameObject.Find ("Main Camera").GetComponent ().target = gameObject.transform; player.GetComponent ().enabled = false; player.GetComponent ().enabled = false; player.GetComponent ().useGravity = false; } else { player.GetComponent ().moveCameraToPlayer (); player.GetComponent ().enabled = true; player.GetComponent ().enabled = true; player.GetComponent ().useGravity = true; player.transform.position = (gameObject.transform.position + new Vector3(-4,1,0)); player.transform.rotation = gameObject.transform.rotation; } player.GetComponent ().enabled = !player.GetComponent ().enabled; } void FixedUpdate() { if (inCar == true) { float steer = Input.GetAxis ("Horizontal"); float accelerate = Input.GetAxis ("Vertical"); float finalAngle = steer * 45f; wheelColliders [0].steerAngle = finalAngle; wheelColliders [1].steerAngle = finalAngle; if ((accelerate == 0) && (wheelColliders [0].rpm > 0 || wheelColliders [0].rpm < 0) && Input.GetKey (KeyCode.Space)) { wheelColliders [0].brakeTorque = maxTorque * 2; wheelColliders [1].brakeTorque = maxTorque * 2; wheelColliders [2].brakeTorque = maxTorque * 2; wheelColliders [3].brakeTorque = maxTorque * 2; } else if (accelerate == 0 && (wheelColliders [0].rpm > 0 || wheelColliders [0].rpm < 0)) { wheelColliders [0].brakeTorque = maxTorque / 2; wheelColliders [1].brakeTorque = maxTorque / 2; wheelColliders [2].brakeTorque = maxTorque / 2; wheelColliders [3].brakeTorque = maxTorque / 2; } else { wheelColliders [0].brakeTorque = 0; wheelColliders [1].brakeTorque = 0; wheelColliders [2].brakeTorque = 0; wheelColliders [3].brakeTorque = 0; } for (int i = 0; i < 4; i++) { wheelColliders [i].motorTorque = accelerate * maxTorque; } } } }

Viewing all articles
Browse latest Browse all 123

Trending Articles



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