剛体の落下位置を物理学で予測する。
powerの分だけ左にふっとばす感じのソースコードを用意。rigidbody2dでもrigidbodyでも良い。
次に、落下位置を予測する。rigidbody.AddForce(Vector3.left * power, ForceMode.Impulse);
もしくは
rigidbody2D.AddForce(Vector2.right * -power, ForceMode2D.Impulse);
移動距離は速度×時間。速度は力÷質量で出す。Vector3 GetPos(float time, float power, float mass)
{
float halfGravity = Physics.gravity.y * 0.5f;float x = time * -power / mass ;
float y = halfGravity * Mathf.Pow(time, 2) ;
return new Vector3(x, y, 0);
}
落下速度は、 y = 1/2 gt^2 だ。
後は現在の座標からこの数値を加算すると、あら不思議、
(当たり判定がない場合の)落下位置が予測できる。
要するに、数学頑張ればそれなりに位置を予測できそうだ。