前提
unity2Dにて、だるま落としのようなゲームを制作しています。
ゲーム開始時にプレハブから自動生成したオブジェクトを縦に積んでいく様な実装をしたいのですが、一定数以上のオブジェクトを積み上げるとオブジェクト同士が重なり一時的に縮み、その重なりを解消しようと徐々に伸びていくような挙動になります。
まただるま落としのような機能で一番下のオブジェクトをどかした後も、落ちてきたオブジェクトたちが重なってしまいます。
既に下のオブジェクトと接した状態で、上から落ちてきたオブジェクトから力を受けるため下のcoliderにわずかに入ってしまっているのかな?と予想していますが、その解決方法がわからず困っています。
オブジェクトにはrigidbody2DとBoxCollider2Dをアタッチしています。だるま落とし時に横にずれないようにfreeze rotationのz軸をオンにしています。gravityは初期値の5倍にしてあります。
実現したいこと
・ゲーム開始時に積んだオブジェクトの挙動を安定させたい。
・だるま落としをした際に落ちてきたオブジェクト達が重ならないようにしたい。
発生している問題・エラーメッセージ
オブジェクトを数十個積み重ねた際に挙動が安定せず、重なった後に伸びてくる。
scene上で確認すると、coliderの位置とオブジェクトの位置がずれていて、後からcoliderの位置にオブジェクトが追いつくような挙動になってしまっている。
試したこと
・オブジェクトの質量を軽くすれば上のオブジェクトから受ける力が変化するかと思ったが、変わらなかった。
・physics materialにてbouncinessを0とすればやや改善が見られたが、できればやや跳ねるような挙動にしたい。
・既に下のオブジェクトと接した状態では速度を常に0にするようなスクリプトを実装したが、あまり効果がなかった。
補足情報(FW/ツールのバージョンなど)
Unity2021.3.16f
あなたの回答
tips
プレビュー