Collision Detection は、物理ボディ (Rigidbody または ArticulationBody) が衝突の判定に使用するアルゴリズムを定義します。アルゴリズムによって精度のレベルは異なりますが、より正確なアルゴリズムにはより多くの計算リソースが必要です。
使用可能なアルゴリズムは 3 つあり、4 つの衝突判定モードによって表されます。
| 衝突判定モード | アルゴリズム | 推奨される用途 | 非推奨の用途 |
|---|---|---|---|
| Discrete | Discrete | - ゆっくりと動く衝突 | - 高速で動く衝突 |
| Continuous Speculative | 投機的 CCD | - 高速で動く衝突 | - 特に高い精度を必要とする高速で動く衝突。 |
| Continuous | スイープ CCD (連続的衝突判定) | - 高い精度が必要な高速で移動する直線の衝突。 - 静的コライダーとのみ衝突する物理ボディ。 |
- 物理ボディの回転の結果として発生する衝突。 - 移動するコライダーと衝突する物理ボディ。 |
| Continuous Dynamic | スイープ CCD (連続的衝突判定) | - 高い精度が必要な高速で移動する直線の衝突。 - 移動するコライダーと衝突する物理ボディ。 |
- 物理ボディの回転の結果として発生する衝突。 |
以下の判定フローは、衝突判定タイプを選択する際の出発点として使用できます。最も計算負荷の低いモードから開始し、最も計算負荷の高いモードへと進みます。
場合によっては、物理演算のパフォーマンスが衝突判定モードと物理演算の時間ステップ間隔の組み合わせに依存していることがあります。両方を試して結果をプロファイルし、プロジェクトに最適なソリューションを見つけてください。
アルゴリズムを選択するには、以下のいずれかの方法で物理ボディの Collision Detection プロパティを設定します。