C# 如何在Unity中检查横向车辆?
如何在Unity中检查横向车辆?也就是说,有人能给我一个C#脚本来检查我的车是否从侧面掉到地上,然后直接重置它吗。我的车,用UNity Physics可以正常工作。但是,当它转向侧面并落到地上时,我无法重置它。我试着用四元数,但没用。我不知道如何制作一个C#脚本来实现它。我的脚本名是C# 如何在Unity中检查横向车辆?,c#,unity3d,C#,Unity3d,如何在Unity中检查横向车辆?也就是说,有人能给我一个C#脚本来检查我的车是否从侧面掉到地上,然后直接重置它吗。我的车,用UNity Physics可以正常工作。但是,当它转向侧面并落到地上时,我无法重置它。我试着用四元数,但没用。我不知道如何制作一个C#脚本来实现它。我的脚本名是CarSideways,汽车仍然是一个立方体 这是我移动汽车的脚本: private void Update() { Rigidbody rb = GetComponent<Rigi
CarSideways
,汽车仍然是一个立方体
这是我移动汽车的脚本:
private void Update() {
Rigidbody rb = GetComponent<Rigidbody>();
if (Input.GetKey(KeyCode.A))
rb.AddForce(Vector3.left);
if (Input.GetKey(KeyCode.D))
rb.AddForce(Vector3.right);
if (Input.GetKey(KeyCode.W))
rb.AddForce(Vector3.up);
if (Input.GetKey(KeyCode.S))
rb.AddForce(Vector3.down);
}
private void Update(){
刚体rb=GetComponent();
if(Input.GetKey(KeyCode.A))
rb.AddForce(向量3.左);
if(Input.GetKey(KeyCode.D))
rb.AddForce(向量3.右);
if(Input.GetKey(KeyCode.W))
rb.AddForce(Vector3.up);
if(Input.GetKey(KeyCode.S))
rb.AddForce(矢量3.down);
}
这里有一个快速建议:在启动时,将汽车的旋转存储在Vector3变量中。汽车侧翻后,再次将旋转设置为存储值
public class CarController : MonoBehavior
{
// adjust the angles as per your needs
public float maxLeftAngle = 315f;
public float maxRightAngle = 45f;
void Update()
{
if ((transform.rotation.eulerAngles.z < maxLeftAngle) || (transform.rotation.eulerAngles.z > maxRightAngle))
{
Debug.Log("The car is turned sideways");
// reset the rotation
}
}
}
公共类CarController:monobhavior
{
//根据需要调整角度
公共浮动maxLeftAngle=315f;
公共浮点数maxRightAngle=45f;
无效更新()
{
if((transform.rotation.eulerAngles.zmaxRightAngle))
{
Log(“汽车转向侧面”);
//重置旋转
}
}
}