2016-09-13 4 views
0

나는 초보자이며이 문제가 해결되지 않았습니다. 나는 선수 통계, 점수 및 이름 수 있지만 점수 판이 제대로 작동하게 만들 수는 없습니다. 나는 2 일 동안 그것을 알아 내려고 노력했다. 나는 너희에게 묻는다.Unity3D 스코어 보드의 순위 및 배치

나는 톱 10 스코어 보드를 가지고 있지만 배치를 할 수 없다. 점수가 높을수록 더 높은 게재 순위를 가져야합니다. 이 일을 didnt한다 때문에

int PlayerCount = PlayerSystem.Players.Count; 

    if(PlayerCount == 1) 
    { 
     Score[0].text = PlayerSystem.Players[0].Name + ": " + PlayerSystem.Players[0].Score.ToString(); 
    } 

    if (PlayerCount == 2) 
    { 
     if(PlayerSystem.Players[0].Score > PlayerSystem.Players[1].Score) 
     { 
      Score[0].text = PlayerSystem.Players[0].Name + ": " + PlayerSystem.Players[0].Score.ToString(); 
      Score[1].text = PlayerSystem.Players[1].Name + ": " + PlayerSystem.Players[1].Score.ToString(); 
     } 

     else if(PlayerSystem.Players[1].Score > PlayerSystem.Players[0].Score) 
     { 
      Score[1].text = PlayerSystem.Players[0].Name + ": " + PlayerSystem.Players[0].Score.ToString(); 
      Score[0].text = PlayerSystem.Players[1].Name + ": " + PlayerSystem.Players[1].Score.ToString(); 
     } 

    } 

내가 코드의 200 개 라인을 통해 주석 :

내 코드입니다. 그러나 당신이 아이디어를 얻길 바랍니다. 내 게시물을 읽으면 고맙습니다. 당신이 나에게 어떻게 도와 주는지 정말 고맙습니다. 고맙습니다.

답변

2

먼저 플레이어의 점수를 정렬합니다.

using System.Linq; 

.... 

List<Player> Players = PlayerSystem.Players.OrderByDescending(p=>p.Score).ToList(); 

그런 다음 GUI에 루프의 점수를 지정하십시오.

for(int i=0; i<10; ++i) 
{ 
    var player = PlayerSystem.Players[i]; 
    Score[i].text = player.Name + ": " + player.Score; 
} 
+0

오류가 발생합니다. ArgumentNullException : 인수가 null 일 수 없습니다. 매개 변수 이름 : 소스 –

+0

내가 더 자세한 정보를 제공해야한다고 생각 : –

+0

공용 클래스 PlayerSystem : NetworkedMonoBehavior { ... 공공 정적 목록 선수 = PlayerSystem.Players.OrderByDescending (P => p.Score) .ToList(); ...} –