承上一篇,我們將會對我們的基本移動系統作最後調整。
首先,我們現在人物落下的速度有點過慢,有在浮空的感覺。我們可以利用腳本去調整下落時的重力。先建立全域變數去記錄原本的人物重力以及自己想要強化的重力比例:
[SerializeField] private float fallGravity = 1.3f;
private float originGravity;
然後在 FixedUpdate() 裹增加分別是人物上升以及下降時各別的重力設定:
// 重力設定
if (rb.velocity.y < 0f)
{
rb.gravityScale = originGravity * fallGravity;
}
else
{
rb.gravityScale = originGravity;
}
這樣基本上腳本就完成了,但我們還是可以在 Unity 裹面調整更多的設定去迎合你的需要。在專案設定中,可以設定 2D 物理,當中的Y軸重力原本為-9.81,我們可以嘗試改成-20到-30,角色會進一步減少懸浮感,但也要相對的更改跳躍力度的數值。
然後,在角色的 Rigidbody 2D 元件中,我們可以設定碰撞偵測為持續、休眠模式為不休眠以及插值來讓 Unity 使用多一點資源去確保人物的物理運算更準確。
最後,我們可以建立一個沒有摩擦力的物理材質,套用在 Rigidbody 上去讓角色避免卡在牆上。