時間と高さによって放物線運動を設定する

unityで時間と高さを決めて、例えばジャンプをする方法のまとめ。

普通はRigidBodyを使って、addforceやvelocityコントロールしますが、

addforceは速度との関係が難しく、

velocity使ったとしても時間か高さしか決められない。

理由は重力加速度を変える必要があるからでした。

 

等加速度直線運動の3公式のうち、下の2つの式を使います。

投げ上げ運動なのでv=0として

v=v0+at→v0=-at

v^2-v0^2=2ax→v0^2=-2ax

これを整理して

v0=2x/t

a=-2x/t^2

 

放物線運動をする物体が1つ or 全ての物体を同じ重力加速度でコントロールする場合、

edit - project setting - physics - gravityの値を変更。

各物体を異なる重力加速度でコントロールする場合、

スクリプトでコントロール

 

以上、個人的なメモでした。