UnityでNon-convex MeshCollider with non-kinematic Rigidbody is no longer supported since Unity 5.が出た時の対処法
概要
UnityでAsset Storeからフリーの武器をダウンロードして使用していたら、以下のエラーがでたのでその対処方法についてメモる。
Non-convex MeshCollider with non-kinematic Rigidbody is no longer supported since Unity 5.
使用していたのは以下のAssetで、その中のKatanaというオブジェクトをアタッチして使っていた。
Seven Swords
環境
Windows10
Unity 2020.1.f1
エラー内容
エラーで出てきた内容をそのまま読むと、「Unity5からはkinematicでないRigidbodyでのConvexでない Mesh Colliderは使えません」と書かれています。具体的にどういうことなのかはさておき、Mesh Colliderが怪しいことはなんとなく分かりました。
早速、Katanaの配下にMesh Colliderがないかを見てみると、3つのColliderがありました。このうち、GuardColliderがMesh Colliderを含んでいました。
おそらくこれが悪さをしているのではないかと踏んで、このMesh Colliderに対して対処していきます。
対処法1
Mesh Colliderを使わないのであれば、これが一番手っ取り早いです。Mesh Colliderを無効化してしまいます。Mesh Collider Componentごと削除してしまってもいいと思います。
削除してGameをスタートしたところ、エラーは出なくなりました。
対処法2
Mesh Colliderを継続して使用したい場合には Convexにチェックを入れる 、という方法があります。エラー内容として、non-Convexは使えませんよ、とありましたので、Convexにしてしまえばいいという発想です。
この場合もエラーは解消されました。
ただ、Convexにチェックを入れると何か不都合があるのではないか?というのが気になったのでUnityのマニュアルを確認してみました。
Enable the checkbox to make the Mesh Collider collide with other Mesh Colliders. Convex Mesh Colliders are limited to 255 triangles.
https://docs.unity3d.com/Manual/class-MeshCollider.html
Convexにチェックをいれると他のMesh Colliderと衝突できるようになる、とのこと。基本t的に衝突させたいからMesh Colliderを使用しているので特におおきな問題ではなさそうです。ポリゴン数が255という制限があるようですが、これを超えていないなら特に障害はなさそうです。
以上
Unityを一から学ぶのにおすすめの本はコチラ