[英]unity3d spaceshooter movement
大家好,我的宇宙飞船的旋转有一些问题。 如果我按下左箭头,然后切换到右箭头,旋转会立即切换。 我怎样才能平滑它?
视频: https : //sendvid.com/fek9izy3
void FixedUpdate()
{
Rigidbody rb = GetComponent<Rigidbody>();
float moveHorizontal = Input.GetAxis("Horizontal");
float moveVertical = Input.GetAxis("Vertical");
Vector3 movement = new Vector3(moveHorizontal, 0.0f, moveVertical);
rb.velocity = movement * speed;
rb.position = new Vector3
(
Mathf.Clamp(rb.position.x, boundary.xMin, boundary.xMax),
0.0f,
Mathf.Clamp(rb.position.z, boundary.zMin, boundary.zMax)
);
rb.rotation = Quaternion.Euler(0.0f, 180, rb.velocity.x * -tilt);
}
}
如果您想要逼真的物理效果,请不要直接修改刚体的位置或旋转。 而是使用Rigidbody.AddForce为直线运动,并Rigidbody.AddTorque旋转。
要平稳地旋转船,您可以执行以下操作:
float speed = 10f;
rb.AddTorque( new Vector3(0f, 0f, moveHorizontal * speed) );
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.