using System.Collections; using System.Collections.Generic; using UnityEngine; public class PoliceCar : MonoBehaviour { // Start is called before the first frame update private float horizontal; private float vertical; public MeshRenderer[] wheelMesh; public WheelCollider[] wheelCollider; [SerializeField] private float m_MaximumSteerAngle; private float maxDigree; private float maxMotor; private float m_SteerAngle; private void Start() { maxDigree = 90; maxMotor = 3000; //rg =GetComponent(); //wheelMesh = transform.GetChild(1).GetComponentsInChildren(); //wheelCollider = transform.GetChild(4).GetComponentsInChildren(); } private void FixedUpdate() { horizontal = Input.GetAxis("Horizontal2"); vertical = Input.GetAxis("YouMen"); //vertical = Mathf.Clamp(vertical, 0, 1); vertical = -vertical; Move(); } void Move() { for (int i = 0; i < 4; i++)//汽车动力 { if (i < 2) { wheelCollider[i].steerAngle = (-horizontal * 25); } //if (i > 2 && i < 4) //{ // wheelCollider[i].motorTorque = maxMotor * vertical; // Debug.Log(vertical); //} //wheelCollider[i].motorTorque = maxMotor * vertical; } wheelCollider[2].motorTorque = maxMotor * vertical; wheelCollider[3].motorTorque = maxMotor * vertical; for (int j = 0; j < 4; j++)//轮胎旋转 { wheelMesh[j].transform.localRotation = Quaternion.Euler(wheelCollider[j].rpm / 60 * 360,-wheelCollider[j].steerAngle,wheelMesh[j].transform.localRotation.z); wheelMesh[j].transform.localRotation = Quaternion.Euler(wheelCollider[j].rpm / 60 * 360, -wheelCollider[j].steerAngle-90, wheelMesh[j].transform.localRotation.z); } m_SteerAngle = horizontal * m_MaximumSteerAngle; wheelCollider[0].steerAngle = m_SteerAngle; wheelCollider[1].steerAngle = m_SteerAngle; } }