Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在Unity中检查横向车辆?_C#_Unity3d - Fatal编程技术网

C# 如何在Unity中检查横向车辆?

C# 如何在Unity中检查横向车辆?,c#,unity3d,C#,Unity3d,如何在Unity中检查横向车辆?也就是说,有人能给我一个C#脚本来检查我的车是否从侧面掉到地上,然后直接重置它吗。我的车,用UNity Physics可以正常工作。但是,当它转向侧面并落到地上时,我无法重置它。我试着用四元数,但没用。我不知道如何制作一个C#脚本来实现它。我的脚本名是CarSideways,汽车仍然是一个立方体 这是我移动汽车的脚本: private void Update() { Rigidbody rb = GetComponent<Rigi

如何在Unity中检查横向车辆?也就是说,有人能给我一个C#脚本来检查我的车是否从侧面掉到地上,然后直接重置它吗。我的车,用UNity Physics可以正常工作。但是,当它转向侧面并落到地上时,我无法重置它。我试着用四元数,但没用。我不知道如何制作一个C#脚本来实现它。我的脚本名是
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(“汽车转向侧面”);
//重置旋转
}
}
}