Rigidbodyのすり抜けを何とかしたい

Unityで使われている物理エンジン「PhysX」

どうも弾丸などの高速で移動するオブジェクトを作りたいときに当たり判定のすり抜けを起こしてしまいます。

ContinuousやContinuous Dynamicを使えば、ある程度改善することが出来ますが、完全にはすり抜けを防止することは出来ず、また処理コストが跳ね上がる結果になってしまいました。

ちょっと調べてみた結果、海外のUnityのwikiでこんなものがありました

http://wiki.unity3d.com/index.php?title=DontGoThroughThings

どうやらRigidBodyを1フレームごとに進んだ座標の間にRayを飛ばしすり抜けてるようならば座標を補完するもの見たいです

使い方は簡単、このスクリプトコピペしてプロジェクトに追加しあとは、オブジェクトにaddComponentするだけ

コードのraycastの間に弾が当たった時の処理とかを付け足したりして応用すればcolliderを使わずに処理を軽くした弾丸なんかにも使えそう

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中