今回はUnity6で「Physics2D.CircleCastAll」を利用して指定した範囲内の敵キャラクターを全て検知するのを実装してみます。
はじめに
使用するのは「Unity 6」のバージョン「6000.0.40f1」、テンプレートは「Universal 2D」です。まずはキーボード入力で動くプレイヤーを作成します。

下記記事で作成した「2Dプレイヤーを上下左右に動かす」を利用しています。
実装開始
まずは敵キャラを作成します。Hierarchyの「+」から「2DObject」→「Sprites」→「Square」を追加。名前を「Enemy」に変更して、サイズと色を変えます。
LayerをEnemyに「AddComponent」から「BoxCollider2D」を追加します。赤色の四角が検知する敵になります。

下記スクリプトを作成します。
using System;
using UnityEngine;
public class EnemyScan : MonoBehaviour
{
[SerializeField] private float Range;
[SerializeField] private LayerMask targetLayer;
[SerializeField]private GameObject[] enemy = new GameObject[10];
private void FixedUpdate()
{
RaycastHit2D[] hits;
hits = Physics2D.CircleCastAll(transform.position, Range, Vector2.zero, 0, targetLayer);
Array.Clear(enemy, 0, 10);
for (int i = 0; i < hits.Length; i++)
{
enemy[i] = hits[i].collider.gameObject;
}
}
void OnDrawGizmos()
{
Gizmos.color = Color.red;
Gizmos.DrawWireSphere((Vector2)transform.position, Range);
}
}
スクリプトをプレイヤーに追加します。パラメータをセットします。Rangeは検知する範囲です。

シーンに表示された赤い丸が検知する範囲になります。

プレイヤーを動かして範囲内に敵キャラクターが入ると検知することが出来ます。パラメータにオブジェクトが格納されたらOKです。

Enemyを複製します。

下記のように全て検知出来たらOKです。

