見出し画像

UNITY HingeJoint なんて便利なものがある

PinBallGameのパドルを操作するスクリプトでよいアイデアがないかといろいろググってたところ、表題の「HingeJoint」にたどり着きました。
なんて便利なんでしょうか。制御角度、バネの強さ、抑制するダンパーまで設定できる。


HingeJointを組み込んだCubeとJointされたCulinder


CubeのInspector

UseSpringの項目を設定すると自在に動作を制御できました。
プレビュー中にScene内でCylinderを動かすとCubeも一緒に移動しました。
面白いことに、軸になるObjectがいなくても動作します。

パドルを作った場合


アンカーをCylinderの根元に設定

こんな感じです。
スクリプトを付けました。
マウスのボタンダウン/アップでbiginPosとshotPosが入れ替わって設定場所まで設定したスプリング条件で移動します。
Scriptはリンク先のものを丸写ししました。

この記事自体がリンク先の劣化版ですね。
フタバゼミさんに感謝です。

これを見つけるまでは振る角度や速度、限界値までをどうやって制御しようか悩んでました。
if文内で角速度を決めて限界値まで来たら速度=0にするとか、いろいろ検討してました。
UNITY内部で何をしているかは不明ですが、設定するだけでOK!!
便利なツールがあるものです。
考えるよりググってしまおう。いい経験でした。

この記事が気に入ったらサポートをしてみませんか?