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を含んでいました。
![](https://obenkyolab.com/wp-content/uploads/2020/09/image-19.png)
![](https://obenkyolab.com/wp-content/uploads/2020/09/image-26.png)
おそらくこれが悪さをしているのではないかと踏んで、このMesh Colliderに対して対処していきます。
対処法1
Mesh Colliderを使わないのであれば、これが一番手っ取り早いです。Mesh Colliderを無効化してしまいます。Mesh Collider Componentごと削除してしまってもいいと思います。
![](https://obenkyolab.com/wp-content/uploads/2020/09/image-32.png)
削除してGameをスタートしたところ、エラーは出なくなりました。
対処法2
Mesh Colliderを継続して使用したい場合には Convexにチェックを入れる 、という方法があります。エラー内容として、non-Convexは使えませんよ、とありましたので、Convexにしてしまえばいいという発想です。
![](https://obenkyolab.com/wp-content/uploads/2020/09/image-33.png)
この場合もエラーは解消されました。
ただ、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を一から学ぶのにおすすめの本はコチラ