UnityのRigidBodyで、オブジェクト間がすり抜ける問題。解法は意外と簡単。
まずプレイヤーと壁をそれぞれ想定するとし、プレイヤーは
Box Collider と
RigidBodyを使用。
Kinematicは絶対に使わない。
壁側は Use Gravityにチェックをし、 Constraintsをいじることで挙動を調整する(ここが重要)
Freeze Positionの X, Yに、
Freeze RotationのX, Y, Zにチェック。
プレイヤーは以下の通り
プレイヤー側は Collision Detection を Continuousにするのがポイント。
結論として、各オブジェクトの何を固定するか(Constraints)、およびぶつけられるオブジェクトの Kinematicをオフにしているか、あたりが主要なファクターらしい。
てな感じで
あと、動かしにくさは Mass(質量)とか Drag(空気抵抗?)とかをガンガンあげればそれなりに担保されるっぽい
No comments:
Post a Comment