IT Learning

実践形式でITのお勉強

Unity

UnityでNon-convex MeshCollider with non-kinematic Rigidbody is no longer supported since Unity 5.が出た時の対処法

投稿日:2020年9月23日 更新日:

概要

UnityでAsset Storeからフリーの武器をダウンロードして使用していたら、以下のエラーがでたのでその対処方法についてメモる。

Non-convex MeshCollider with non-kinematic Rigidbody is no longer supported since Unity 5.

使用していたのは以下のAssetで、その中のKatanaというオブジェクトをアタッチして使っていた。

Seven Swords

https://assetstore.unity.com/packages/3d/props/weapons/seven-swords-seven-stylized-swords-14304#releases

環境

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を一から学ぶのにおすすめの本はコチラ

Related

-Unity

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です