유니티 Fusion2 Active Player 정렬하기 #OrderBy(p => p.AsIndex)

플레이어가 여러 명일 경우 “어떤 순서”로 처리할지 고민이 생길 수 있습니다. 대표적으로 플레이어가 네트워크에 접속하는 순서, 혹은 특정 인덱스 기준으로 정렬하고 싶을 때가 있죠.

Runner.ActivePlayers는 현재 게임(세션)에 접속해 있는 모든 플레이어 목록을 제공합니다.  여기에 OrderBy(p => p.AsIndex)를 붙이면, 플레이어를 “Index가 낮은 순”부터 정렬합니다.

Index가 낮을수록 먼저 접속했거나, Fusion2 내부에서 먼저 할당된 플레이어를 의미합니다.

 

foreach (var playerRef in Runner.ActivePlayers.OrderBy(p => p.AsIndex))
{
    // 인덱스 순서대로 처리하고 싶은 로직
}