私はユニティに新しく、CharacterController.Move
を使って私のキャラクターを動かす。私のゲームの世界では、1ユニット= 1メートルです。 これは素晴らしいです。例えばスピードの場合:スピード5を使用すると、スピードは5m/sになります。ジャンプの高さと重力の重さ
私が使用して自分のキャラクターをジャンプさせる:
if (Input.GetButton("Jump"))
moveDirection.y = jumpHeight;
...
moveDirection.y -= gravity * Time.deltaTime;
これはあまりにも正常に動作しますが、重力が私の性格をプルダウンされているので、jumpHeightが実際に達していません。たとえば、jumpHeightが8の場合、約2.4メートルのジャンプが発生します。
jumpHeightは、重力が落ちてもジャンプする高さを表しますので、コードを変更するにはどうすればよいですか?基本的に、jumpHeightが8の場合、私はプレイヤーに8メートルのジャンプをさせたい。
物理学によれば、初期速度8で、高さは1.6で重力20(height = initialvelocity^2/(2*gravity)
)です。これが確かに私がゲームで見ている高さであれば、私は単純に数式を変換することができますが、私は約2.4メートルの高さを見ています...
あなたはvector3.slerpを使用して、いくつかの解決策について考えたことがあります? – Asbest