単純にSpriteのCollider2dとの接触を検知する
SpriteにCollider2dを設定し、そのCollider2dが指定したワールド座標と接触しているかの判定を行うための方法です。
ワールド座標の取得についてはこちらの記事を参考にしてください。
判定したいSpriteにCollider2dが設定されているとして、以下の処理を記述します。
Vector2 position = /* 適当な値 */;
Collider2d collider = Physics2D.OverlapPoint(position)
もし指定した座標にCollider2dがあればそのオブジェクトが取り出され、
何も無ければnullが返ります。
重なりあったSprite全てのCollider2dを検知する。
上述のやり方では1つ問題があります。
それは、Spriteが重なり合っている時に、全てを検知することが出来ません。
(重なりの中で1番上に配置されているSpriteのみ適用されてしまいます)
重なったSprite全て等しく接触を検知する場合は、OverlapPointではなく、OverlapPointAllを利用します。
ちなみに、OverlapPointAllは戻り値が配列になっているのでご注意ください。
Vector2 position = /* 適当な値 */;
Collider2d[] colliderArr = Physics2D.OverlapPointAll(position)
// 値があれば、取り出す
if (colliderArr.Length > 0) {
foreach (Collider2D collider in colliderArr) {
/* 処理 */
}
}