2Dのラグドールが作りたかったのですが、一つずつHingeJoint2Dをつけていくのがめんどくさくなったので
Assetの力をかりることにしました。
インポートしたところ
Scriptの種類
BreakJoint.cs ぶつかったらジョイントが壊れて連結がはがれるScript
HurtSound.cs 激しくぶつかったときに音をならすScript
Drag.cs オブジェクトをドラッグするScript
Restart.cs シーンを再読み込みするScript
試しに作成してみる
Window->2D Ragdoll Creatorでウィンドウを出し、各パーツをセットしていきます
必要なものだけセットすればOK
パーツ名が左の名前と合っていればAuto Assignで自動でセットされるのでたくさんやる場合は名前を合わせると楽です
ジョイントを作成し、ジョイントの位置を回転する場所に合わせて
左が作成したところ。右がちょっと頂点を減らしたところ。
Polygon Collider 2D、Hinge Joint2D、Rigidbody2Dが設定したパーツにアタッチされます
次にジョイントの破壊とぶつかったときの音を。
ジョイントの部分にBreakJoint.csとHurtSound.csをアタッチし、
Bloodに血などのパーティクルのprefab、Hurt Soundsにうめき声などの音をセットします。
これでVelocity For Brakeなどのパラメータ以上の衝撃がくわわればとれます
デモのようにドラッグしてつかめるようにする
Drag.csをカメラにアタッチ。空のGameObjectを作成しそこにRigidBody2Dと Spring Joint2Dをセットします。
デモシーンからヒエラルキーにあるdraggerというオブジェクトを持ってくると手っ取り早いです。
これをDrag.csにアタッチすればつかんだりドラッグができます
とりあえずデモのキャラクターを前に作成したロープのに追加し手のところにHinge Joint2Dを追加してロープをつかませてみたところ