| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 | using System.Collections;using System.Collections.Generic;using UnityEngine;public class CarController : MonoBehaviour{    public Wheel[] turningWheels;    public Wheel[] drivingWheels;    public List<Wheel> allWheels;    public Rigidbody rb;    public float TopSpeed = 10;    public float Deceleration;    public float BrakePower = 3;        public AnimationCurve PowerCurve;    public float EnginePower = 5;    public float curSpeed;    [Header("Steering")]    public float maxSteerAngle = 25;    public float minSteerAngle = 10;    void Awake(){        foreach(Wheel wheel in turningWheels){            wheel.myCar= this;            if(!allWheels.Contains(wheel)){allWheels.Add(wheel);}        }        foreach(Wheel wheel in drivingWheels){            wheel.myCar= this;            if(!allWheels.Contains(wheel)){allWheels.Add(wheel);}        }    }    void FixedUpdate()    {        if(Input.GetKeyDown(KeyCode.R)){transform.eulerAngles = new Vector3(0,0,0);}        curSpeed = Vector3.Dot(transform.forward, rb.velocity);        float verticalInput = Input.GetAxis("Vertical");                if((verticalInput >0 && curSpeed < 0) || (verticalInput <0 && curSpeed > 0)){            foreach(Wheel wheel in allWheels){                wheel.Brake();            }        }        foreach(Wheel wheel in drivingWheels){            wheel.Rotate(verticalInput);        }                foreach(Wheel wheel in turningWheels){            wheel.Steer(Input.GetAxis("Horizontal"));        }    }}
 |