Любой каст из точки спавка делаешь и если он не срабатывает то спавн пустой
void Spawner(Transform spawnPos)
{
RaycastHit[] hits= Physics.SphereCastAll(spawnPos.position, Radius, spawnPos.up, 2f, _enemymask, QueryTriggerInteraction.UseGlobal);
if (hits.Length > 0) return;
GameObject enemy = Instantiate(_enemy.gameObject, spawnPos);
}
Ну лучом можно будет стрелять если (hits.Length > 0) просто нарисовать LineReneder а через hits можно уничтожить объекты или получить компонент(ну условный heals) и нанести урон