Thursday, October 4, 2018

Unity zombie Game sample

Unity 2018 でオブジェクトの壁が突き抜ける問題

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(空気抵抗?)とかをガンガンあげればそれなりに担保されるっぽい