Loading...
「ツール」は右上に移動しました。
利用したサーバー: watawata37
3いいね 108回再生

【Unity】物理の計算使って輪投げしたらバグってた件【作ってみた】

投射したリングをポールに通す「輪投げ」をテーマにプログラムを作成しました。

「物理」で習う「斜方投射運動」を参考にし、ポールまでの距離と投射角度の情報から、「初速度」を算出し投射します。

重力加速度(9.81 m/s^2) = G / 滞空時間s = t / 投射角度 = θ
初速ベクトル = v / y成分 = v * sinθ / x成分 = v * cosθ

・滞空時間 t = y成分 / G
・ Y変位 = (y成分 * t) - (1/2 * G * t^2) ※ ^2 は2乗
・ X変位 = x成分 * t

上記を元に、到達距離 = v * cosθ * (y成分 / G) * 2 つまり、
到達距離 = v * cosθ * (v * sinθ / G) * 2 が成り立ちます。

さらに上記から初速度 v を算出するには、到達距離を「d」とすると
v * cosθ * (v * sinθ / G) * 2 = d

v * cosθ * (v * sinθ / G) = d / 2

v * cosθ * v = (d / 2) * (G / sinθ)

v * v = (d / 2) * (G / sinθ) * (1 / cosθ)

【式】v = Sqrt((d * G) / (2 * sinθ * cosθ))

上記【式】で、リングまでの距離と投射角度の情報から初速度を算出しました。


◆ ソースコード
github.com/S-Yajima/Ring_Throw_Unity/blob/master/A…

◆ BGM
カナリアスキップ
written by まんぼう二等兵
dova-s.jp/bgm/play7330.html

#Unity #物理 #カナリアスキップ #数学

コメント