【发布时间】:2019-06-13 02:55:26
【问题描述】:
我正在尝试制作一款用于学习目的的“太空射击”类游戏。我无法使用 Rigidbody2D 移动宇宙飞船。
我已经尝试过运行 Update()、FixedUpdate() 中的命令并专门使用 Rigidbody2D 组件(完全不使用 Transform)。我还尝试将 Rigidbody2D 标记为 Dynamic 和 Kinematic,并更改了 Simulated 属性。没有任何效果。
这是我当前(不工作)的代码:
Rigidbody2D rb;
void Start()
{
rb = GetComponent<Rigidbody2D>();
}
void FixedUpdate()
{
if (Input.GetKey(KeyCode.Q))
rb.MoveRotation(angularSpeed * Time.deltaTime);
if (Input.GetKey(KeyCode.E))
rb.MoveRotation(-angularSpeed * Time.deltaTime);
rb.MovePosition(Vector2.up * speed * Time.deltaTime);
}
我希望这段代码在我按下“Q”键时让宇宙飞船左转,当我按下“E”键时右转并始终向前移动。实际结果是宇宙飞船没有移动,而是在按下“Q”或“E”键时仅抖动(它向右或向左旋转一步,然后不再响应输入)。该代码不会生成任何错误消息或任何警告,也不会引发任何异常。
【问题讨论】: