あなたが望むものを正確に行う方法はありません。
1)Rigidbody
をオブジェクトのうちの1つにのみ貼り付けます(2つのうち衝突する可能性があります)
2つのオブジェクトのうちの1つにのみ貼り付けます。 )それは(非トリガーを別のオブジェクトに当たったとき、それはRigidbody
まだ火災離れてトリガイベントを必要としない他のオブジェクトの衝突にisTrigger
に物理
3)チックに反応しないRigidbody
にIsKinematic
にダニ(!!!)衝突型加速器(と剛体)
(またはON Rigidbody
を使用するすべてのGOの場合、IsKinematic
をすべてに入れてください。
@ Helliumのコメントを参照してください。
私はあなた自身の衝突検出をコード化するならば、その日の終わりにはおそらくより多くのcalcをコードしているコードに終わるでしょう。時間(そしておそらく少なくとも少しばかげている)。
C++ではなくスクリプトでコード化するだけで、エンジンの衝突検出はC++であるためです。 (あなたの.NETスクリプトは、il2cpp経由でネイティブにコンパイルされますそうではないネイティブ実装==まだエンジンでサポートされている同様の性質を有するコード、つまりC++でコーディングされたよりも遅くなければなりません)
サイドノート:もしあなたのアプリを見つける。遅いですが、必ずしも衝突検知のためではありません。それは不可能ではありませんそれはあなたのコード、何のあなたはあなたが衝突を検出するときに遅い実行します。
the profilerを使用して、アプリケーションで何が遅くなるかを確認することを強くお勧めします。
本当にあなたのコードの場合は、その実行をより速くする方法に関する質問を投稿してください。
あなたのオブジェクトの周りに光を投げかけてみると、私が推測する最悪の解決策になります。インターネットには衝突検出に関するリソースが豊富ですが、手作業でソリューションを実装するのは辛いでしょう。すべてのオブジェクトが衝突しなければならないのでなければ、Unityレイヤーを使用することができます:https://docs.unity3d.com/Manual/LayerBasedCollision.html – Hellium
それは私が考えることができる最悪の事です:D –