Unityで実装したキャラクターが障害物に向かってジャンプしたとき跳ねる(3D)

Windows10
Unity 2021.3.6f1
C#

実現したいこと

Unityで3Dゲームを作成しています。
操作キャラクターがジャンプしてキューブのオブジェクトに乗っかるとき、ジャンプが低くキューブオブジェクトのふち(角)にあたったときの挙動について相談させてください。
現状、ジャンプしてふちにあたったときは操作を続けると(摩擦を0にしているので)上にのぼれるようになっています。
その際、キャラクターがふちを上りきった時に斜め前方向に跳ねるような動きをしてしまいます。理想としては上りきった時に跳ねずにぴったりと障害物の上部の床に引っ付くのが理想です
これは一般的にはどういった対処法がありますでしょうか?
よろしくお願いします。

該当のソースコード

Unity

1private void Update(){ 2 var on = VRInput.IsDown(VRInput.Action.Jump); 3 if (on && character.IsGround && state != State.Jump && canJump) onJump = true; 4 } 5 6 7 private void FixedUpdate(){ 8 var body = character.Body; 9 var proxy = character.Proxy; 10 11 if (onJump) { 12 body.AddForce(new Vector3(0.0f, currentJumpForce, 0.0f)); 13 proxy.PlayJump(); 14 onJump = false; 15 state = State.Jump; 16 17 if (onJumpAct != null) onJumpAct(); 18 } 19 } 20 21 private void DoJumpFixed(){ 22 if (character.IsDead()) return; 23 24 var velocity = HorizontalMov(); //前後左右に動かす処理 25 26 }

コメントを投稿

0 コメント