H_SafeExperienceDrivingSystem/U3D_DrivingSystem/Assets/Script/Old/PoliceCar.cs

63 lines
2.1 KiB
C#

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<Rigidbody>();
//wheelMesh = transform.GetChild(1).GetComponentsInChildren<MeshRenderer>();
//wheelCollider = transform.GetChild(4).GetComponentsInChildren<WheelCollider>();
}
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;
}
}