Да, вы можете использовать OnCollisionEnter для нескольких объектов. Внутри метода OnCollisionEnter вы можете проверить имя других объектов в коллизии и выполнить нужные действия.
Вот пример кода, который позволит вам получить имена каждого объекта, входящих в коллизию:
```csharp
void OnCollisionEnter(Collision collision)
{
foreach(ContactPoint contact in collision.contacts)
{
Debug.Log("Object name: " + contact.otherCollider.gameObject.name);
}
}
```
В этом примере мы используем foreach для перебора каждой контактной точки (contact) в коллизии (collision). Затем мы выводим имя игрового объекта (otherCollider.gameObject.name), связанного с каждой контактной точкой.
Отметим, что данное решение работает только для физических коллизий, не для коллизий триггеров.
Однако, если у вас есть большое количество объектов, войдящих в коллизию одновременно, цикл foreach может быть неэффективным. В таком случае можно использовать различные оптимизации, например, сохранять имена объектов в массиве или использовать лист (List) для динамического добавления и удаления имен объектов в процессе выполнения.