我希望我的對象永遠向目標方向移動或直到它碰撞,碰撞部分我已經處理它;但是,我在運動部分遇到問題。翻譯對象直到碰撞
我第一次嘗試使用的代碼
Vector2 diff = target - transform.position;
float angle = Mathf.Atan2(diff.y, diff.x) * Mathf.Rad2Deg;
transform.rotation = Quaternion.Euler(0.0f, 0.0f, angle);
這些線路這完美的作品和我的對象,我希望它的方向旋轉旋轉我的目標。 在我更新的方法,我有以下
if (isMoving)
{
Vector2 f = transform.forward;
transform.position = Vector3.MoveTowards(transform.position, target + Vector3.forward, speed * Time.deltaTime);
}
現在這個運行,但未能完成目標,我知道爲什麼,這是有道理的,但不知道如何解決它。物體以正確的方向移動,但我不希望它停在目標上,我希望它繼續前進。
我也試過
rb.MovePosition(rb.position + f * Time.deltaTime * speed);
RB是rigidbody2D
以及
rb.AddForce(rb.position + f * Time.deltaTime * speed);
但在這兩種情況下,物體旋轉,但從來沒有移動
我也用翻譯和MovePosition的行爲相同
P.S.這是一個2D遊戲
發佈完整的代碼,包括更新,碰撞觸發等... – Isma
@Isma謝謝你,我可以通過使用直線方程來解決它。我回答了我的問題,如果你想看看這種方法。 –