Search
 
SCRIPT & CODE EXAMPLE
 

CSHARP

car controller script unity

using UnityEngine;
using System.Collections;
public class CarController : MonoBehaviour {
    public WheelCollider WheelFL;
    public WheelCollider WheelFR;
    public WheelCollider WheelRL;
    public WheelCollider WheelRR;
    public Transform WheelFLtrans;
    public Transform WheelFRtrans;
    public Transform WheelRLtrans;
    public Transform WheelRRtrans;
    public Vector3 eulertest;
    float maxFwdSpeed = -3000;
    float maxBwdSpeed = 1000f;
    float gravity = 9.8f;
    private bool braked = false;
    private float maxBrakeTorque = 500;
    private Rigidbody rb;
    public Transform centreofmass;
    private float maxTorque = 1000;
    void Start () 
    {
        rb = GetComponent<Rigidbody>();
        rb.centerOfMass = centreofmass.transform.localPosition;
    }
    
   void FixedUpdate () {
     if(!braked){
            WheelFL.brakeTorque = 0;
            WheelFR.brakeTorque = 0;
            WheelRL.brakeTorque = 0;
            WheelRR.brakeTorque = 0;
        }
        //speed of car, Car will move as you will provide the input to it.
   
      WheelRR.motorTorque = maxTorque * Input.GetAxis("Vertical");
        WheelRL.motorTorque = maxTorque * Input.GetAxis("Vertical");
      
        //changing car direction
Here we are changing the steer angle of the front tyres of the car so that we can change the car direction.
        WheelFL.steerAngle = 30 * (Input.GetAxis("Horizontal"));
        WheelFR.steerAngle = 30 * Input.GetAxis("Horizontal");
    }
    void Update()
    {
        HandBrake();
        
        //for tyre rotate
        WheelFLtrans.Rotate(WheelFL.rpm/60*360*Time.deltaTime ,0,0);
        WheelFRtrans.Rotate(WheelFR.rpm/60*360*Time.deltaTime ,0,0);
        WheelRLtrans.Rotate(WheelRL.rpm/60*360*Time.deltaTime ,0,0);
        WheelRRtrans.Rotate(WheelRL.rpm/60*360*Time.deltaTime ,0,0);
        //changing tyre direction
        Vector3 temp = WheelFLtrans.localEulerAngles;
        Vector3 temp1 = WheelFRtrans.localEulerAngles;
        temp.y = WheelFL.steerAngle - (WheelFLtrans.localEulerAngles.z);
        WheelFLtrans.localEulerAngles = temp;
        temp1.y = WheelFR.steerAngle - WheelFRtrans.localEulerAngles.z;
        WheelFRtrans.localEulerAngles = temp1;
        eulertest = WheelFLtrans.localEulerAngles;
    }
    void HandBrake()
    {
        //Debug.Log("brakes " + braked);
        if(Input.GetButton("Jump"))
        {
            braked = true;
        }
        else
        {
            braked = false;
        }
        if(braked){
         
            WheelRL.brakeTorque = maxBrakeTorque * 20;//0000;
            WheelRR.brakeTorque = maxBrakeTorque * 20;//0000;
            WheelRL.motorTorque = 0;
            WheelRR.motorTorque = 0;
        }
    }
}
Comment

car controller Unity

using UnityEngine;

public class car_controller : MonoBehaviour
{
    public WheelCollider[] wheel_col;
    public Transform[] wheels;
    float torque=100;
    float angle=45;
    
    void Update()
    {
        for(int i=0;i<wheel_col.Length;i++)
        {
            wheel_col[i].motorTorque=Input.GetAxis("Vertical")*torque;
            if(i==0||i==2)
            {
                wheel_col[i].steerAngle=Input.GetAxis("Horizontal")*angle;
            }
            var pos=transform.position;
            var rot=transform.rotation;
            wheel_col[i].GetWorldPose(out pos,out rot);
            wheels[i].position=pos;
            wheels[i].rotation=rot;
            
        }
        if(Input.anyKeyDown) 
        {
            if(Input.GetKeyDown(KeyCode.Space))
            {
                foreach(var i in wheel_col)
                {
                    i.brakeTorque=2000;
                }
            }
            else{   //reset the brake torque when another key is pressed
                foreach(var i in wheel_col)
                {
                    i.brakeTorque=0;
                }
                
            }
        }
        
       
        
    }
}
Comment

PREVIOUS NEXT
Code Example
Csharp :: if string contains number c# 
Csharp :: check if panel has controler c# 
Csharp :: C# fix formatting 
Csharp :: binding command to event wpf 
Csharp :: c# loop 
Csharp :: C# regex replace all spaces with blank 
Csharp :: unity 2d looka tt mouse 
Csharp :: checkbox value unchecked after return view model 
Csharp :: get item from icollection 
Csharp :: how to configure session timeout in asp.net core 
Csharp :: oncollisionenter compare tag 
Csharp :: unity object to mouse 
Csharp :: Tower of Hanoi c# 
Csharp :: wpf update listview itemssource 
Csharp :: unity destroy all children 
Csharp :: c# class to byte array 
Csharp :: c# create file 
Csharp :: unity round to x decimals 
Csharp :: despicable me 
Csharp :: string in int c# 
Csharp :: c# multiple catch exceptions 
Csharp :: insert new item listview c# 
Csharp :: c# list remove duplicate items 
Csharp :: unity new Color() 
Csharp :: get working directory c# 
Csharp :: c# object to dictionary 
Csharp :: httppostedfilebase in .net core 3.1 
Csharp :: convert from xls to xlsx C# 
Csharp :: asp net c# compare date to current 
Csharp :: how to change the axis of a Vector3 variable 
ADD CONTENT
Topic
Content
Source link
Name
1+4 =