我用第一人稱動作制作了簡單的角色。我沒有使用CharacterController
,因為我無法更好地控制它的物理特性。角色Rigidbody
不是運動學的,所有碰撞矩陣在專案編輯器中都是正確的,但玩家仍然穿過墻壁。這就是我移動角色的方式:
playerRb.MovePosition(transform.position (transform.forward * Input.GetAxis("Vertical") * moveSpeed * Time.deltaTime) (transform.right * Input.GetAxis("Horizontal") * moveSpeed * Time.deltaTime));
這是我的角色Rigidbody
組件:剛體組件截圖
uj5u.com熱心網友回復:
Rigidbody.MovePosition 僅適用于運動學剛體并忽略物理。檔案說:
將運動學剛體移向位置。
檔案
更老的檔案甚至說:
如果剛體的 isKinematic 設定為 false,它的作業方式類似于 transform.position=newPosition 并將物件傳送到新位置(而不是執行平滑過渡)。
(根據這個論壇條目)
因此,我建議您只需在所需方向上設定一個速度。如果您需要幫助,請在您遇到困難的地方發表評論,我會幫助您。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/519998.html
標籤:C#unity3d