やりたかったこと
blenderで作成した3Dオブジェクトを読み込み、Mesh Colliderを使って正確な当たり判定を付与。
Rigidbodyも付けたい
やったこと
- blenderで思うままにモデルを作成し、.blendで保存
- unityのAssetsに、作った.blenderファイルをドラッグ&ドロップ
- オブジェクトとして追加し、Mesh Colliderをアタッチ(Convex -> On)
結果
何この斜めの線…しかも穴の部分も無視されてるっぽいし… 念のためこの物体に球を衝突させてみるものの、案の定思った通りには行かない。
調べて分かった
- ConvexをOnにしていると、凹みの部分のColliderがおかしくなる
- でもConvexをOffにすると床をすり抜ける&エラー出る
- RigidbodyのIs KineticをOnにしないと、ConvexをOffにできない
結論
ConvexをOffに、RigidbodyのIs KineticをOffにする必要がある。
つまり複雑な3Dモデルは、素のUnityでは地面としてしか使用できない。(多分)
(Convex -> Off, Is Kinetic -> On にした結果↓)
#まとめ
キャラクターなどにMesh Colliderを付けたい場合は、Asset StoreからSAColliderBuilderなどをインポートして行う他なさそう。
以上、ほとんど自分への備忘録でした。