この記事は
『プログラミング完全未経験からUnityでの開発現場に迎え入れてもらえた世界一の幸せ者』
の記事です。そのつもりでお読みください。
物理特性を与えながら固定する
要はモノを吊り上げたいときに使えます。
吊り上がっていく最中に揺れたり、少し回転したりするのが実際の物理挙動だと思います。
それは、重力が働いているからこそです。
しかし、クレーンで吊り上げる荷物にRigidbodyをつけてUse Gravityをtrueにし、ポジションをどんどん高い位置に更新したとしても、ポジションの更新が終われば落下してしまいますし、ポジションを更新している間も物体は落ちようと頑張るので気持ち悪い挙動になります。
そこでHingeJoint
というComponentを使います。
HingeJoint
まず、HingeJointをAdd Componentするためのゲームオブジェクトを
吊り上げたいモノとは別で用意しましょう。
そして、Inspectorをこのような感じ↓で設定します。
具体的な設定の変更点は
①Rigidbody(勝手にAddされます)のIs Kinematicをtrueにする
②Connected Bodyに吊り上げたい荷物※のRigidBodyをぶち込む
③AxisをX,Y,Z = (1,0,1)に変更
※吊り上げたい荷物のRigidbodyはUse Gravityをtrueにしてください。
設定は以上です。
実際に動かしたものがこんな感じになります。
落下させたいときは、
HingeJoint型の変数.connectedBody = null;
としてやればジョイントから外れて落下します。