//左右移动的时候转动会转方向
void Update () {
TurnLeft = false; //静止的时候是不转动的
TurnRight = false;
if (Input.GetKey(KeyCode.W)) //按住w前进 虽然很奇特的前进方法 不过可以借鉴
{
Vector3 screenPos = Camera.mainCamera.WorldToScreenPoint(this.transform.position);
//print(screenPos.y);
if (Screen.height > screenPos.y)
this.transform.Translate(Vector3.forward * Time.deltaTime * m_nMoveSpeed);
}
if (Input.GetKey(KeyCode.S))
{
Vector3 screenPos = Camera.mainCamera.WorldToScreenPoint(this.transform.position);
if (0 < screenPos.y)
this.transform.Translate(Vector3.forward * Time.deltaTime * -m_nMoveSpeed);
}
if (Input.GetKey(KeyCode.A))
{
Vector3 screenPos = Camera.mainCamera.WorldToScreenPoint(this.transform.position);
if (0 < screenPos.x)
this.transform.Translate(Vector3.left * Time.deltaTime * m_nMoveSpeed);
//向左转
if (CurRotation < RotateLimit)
{
print(CurRotation);
CurRotation += RotateSpeed;
}
TurnLeft = true;
}
if (Input.GetKey(KeyCode.D))
{
Vector3 screenPos = Camera.mainCamera.WorldToScreenPoint(this.transform.position);
if (Screen.width > screenPos.x)
this.transform.Translate(Vector3.left * Time.deltaTime * -m_nMoveSpeed);
//向右转
if (CurRotation > -RotateLimit)
CurRotation -= RotateSpeed;
TurnRight = true;
}
//回归
if (!TurnLeft && !TurnRight)
{
if (CurRotation > 0.0)
CurRotation -=RotateSpeed;
else if (CurRotation < 0)
CurRotation +=RotateSpeed;
}
Quaternion rot = Quaternion.AngleAxis(CurRotation, new Vector3(0, 0, 1));
m_Plane.rotation = rot;
//让相机和飞机一起以一定的速度前移
this.transform.Translate(Vector3.forward * Time.deltaTime * m_nMoveSpeed);
Camera.mainCamera.transform.Translate(Vector3.up * Time.deltaTime * m_nMoveSpeed);
}