Las Layers permiten filtrar qué objetos participan en distintas consultas o colisiones.

LayerMask en código

[SerializeField]
private LayerMask enemigos;

Ejemplo:

Physics.Raycast(
    transform.position,
    transform.forward,
    10f,
    enemigos
);

Obtener layer por nombre

int layer = LayerMask.NameToLayer("Enemy");

Comparar layer

if (other.gameObject.layer ==
    LayerMask.NameToLayer("Enemy"))
{
}

Matriz de colisiones

En:

Project Settings → Physics

podés decidir qué Layers colisionan entre sí.

Ejemplo:

Player ↔ Enemy
Player ↔ Ground
Bullet ↔ Enemy
Bullet ✕ Player

Ventaja