我正在Unity 2D中進行非常基本的測試。我遇到的問題是當我的精靈與地面碰撞時,它經常會頻繁地檢查事件,所以精靈會一直處於陷阱狀態。它沒有機會離開地面,直到檢查結果告訴它轉身,導致它快速上升和下降。 在下面夾如圖所示:插值對象碰撞卡住
https://m.youtube.com/watch?v=gPmmLjGe9iQ
我想,當接觸時精靈需要改變它的Y軸方向。請參閱下面的代碼。
void Update() {
hitWall = Physics2D.OverlapCircle(wallCheckUp.position, wallCheckRadius, whatIsWall);
if (hitWall)
{
moveUp = !moveUp;
}
if (moveUp)
{
transform.localScale = new Vector3(-1f, 1f, 1f);
GetComponent<Rigidbody2D>().velocity = new Vector2(speed, GetComponent<Rigidbody2D>().velocity.x);
}
else
{
transform.localScale = new Vector3(1f, 1f, 1f);
GetComponent<Rigidbody2D>().velocity = new Vector2(-speed, GetComponent<Rigidbody2D>().velocity.x);
}
}
如果需要更多信息,請讓我知道。
編輯
爲了讓我更清晰,請參閱我的精靈設置。
難怪爲什麼你完全濫用'Rigidbody'(手動設置'velocity'),請查看如何正確使用它的文檔。 – Aybe
會不會,我還在學習。我從一個在線教程中得到了這個基礎,但它是用於左右移動的,我已經修改過嘗試去獲得我需要的東西。 – Phil3992
基本上你只應該在'Rigidbody'中使用'Add *(Vector3)'方法,給所需的布丁分配一個'PhysicsMaterial',然後根據你的需要調整它。 – Aybe