読者です 読者をやめる 読者になる 読者になる

テラシュールブログ

旧テラシュールウェアブログUnity記事。主にUnityのTipsやAR・VR、ニコニコ動画についてのメモを残します。

rigidbodyの落下位置を予測するには…

Unity 物理演算 回転とか移動とか拡大縮小とか スクリプト 2D

剛体の落下位置を物理学で予測する。

落下予測
 
powerの分だけ左にふっとばす感じのソースコードを用意。rigidbody2dでもrigidbodyでも良い。

rigidbody.AddForce(Vector3.left * powerForceMode.Impulse);
もしくは

rigidbody2D.AddForce(Vector2.right * -powerForceMode2D.Impulse);

次に、落下位置を予測する。

Vector3 GetPos(float timefloat powerfloat mass)
{
    float halfGravity = Physics.gravity.y * 0.5f;

    float x = time * -power / mass ;
    float y = halfGravity * Mathf.Pow(time2) ;
    return  new Vector3(xy0);
}

移動距離は速度×時間。速度は力÷質量で出す。
落下速度は、 y = 1/2 gt^2 だ。

後は現在の座標からこの数値を加算すると、あら不思議、
(当たり判定がない場合の)落下位置が予測できる。

要するに、数学頑張ればそれなりに位置を予測できそうだ。