Используйте ссылки на объекты для игроков и передайте их в событии OnClick. Таким образом, вы можете предотвратить некоторую абстракцию, введенную управлением индексами, и вам, возможно, не придется управлять списком игроков отдельно. Еще одно преимущество заключается в том, что IntelliSense может быть более полезным для управления таким кодом.
В зависимости от вашего случая это может быть GameObject или ссылка на скрипт на игровой объект игрока в сцене (например, PlayerMonobehaviour.cs, прикрепленный к GameObject) , или какой-нибудь объект C#, относящийся к игрокам-людям.
// Object reference can be something like:
// Player player, GameObject player, PlayerMonobehaviour player, ...
private void OnClick(Player player)
{
// Control player directly,...
player.DoSomething();
// ...or publish an event with player as the event argument.
// and let other scripts do what they want with the player.
Clicked?.Invoke(player);
}