Raycast2Dの発生元との衝突を無視する
Physics2D.Raycast系のメソッドを使用する際に、発生元を無視する方法です。
環境
- Unity 2021.2.5f1
何がしたいか
以下のようにRaycast系自身が当たり判定を持つ場合、自分自身にもhitする。 これを自分自身にはhitしないように変更したい
[RequiredComponent(typeof(BoxCollider2D))]
class SomeComponent : MonoBehaviour{
// ...中略
private void BoxCastExample(){
// 他にオブジェクトが無くても hitCount == 1
int hitCount = Physics2D.BoxCastNonAlloc(
origin: origin,
size: _collider.size,
angle: 0f,
direction: direction,
results: hitBuffer,
distance: distance,
layerMask: targetMask
);
}
}
方法
ProjectSettings -> Phjysics2D に "Queries Start In Colliders" というチェックボックスがあるので、これをoffにする

最終更新日:
April 3, 2022