토너먼트 및 순위표 빠른 시작

이 빠른 시작에서는 플레이어의 높은 점수를 추적하는 통계를 보유하는 방법과 상위 점수 순위표를 얻는 방법을 설명합니다. 글로벌 순위표에 사용하거나 재설정 가능한 통계와 함께 사용하여 특정 이벤트 또는 토너먼트에 대해 재설정할 수 있습니다.

필수 구성 요소

플레이어가 이미 PlayFab에 로그인되어 있습니다.

1단계 - 통계 및 관련 순위표 만들기

게임 관리자에서:

  • 왼쪽 메뉴에서 순위표로 이동합니다.
  • 새 순위표를 선택합니다.
  • 통계 이름 필드에 HighScore라는 순위표를 추가합니다.
  • 제공된 드롭다운 메뉴를 사용하여 빈도 다시 설정 필드를 수동으로 설정합니다.
  • 집계 방법 필드로 이동하고 제공된 드롭다운 메뉴에서 최대(항상 가장 큰 값 사용)을 선택합니다.

2단계 - 플레이어의 높은 점수로 통계 업데이트

클라이언트에서 UpdatePlayerStatistics를 사용하려면 API 기능에서 활성화해야 합니다.

  1. 타이틀의 설정 메뉴에서 타이틀 설정을 선택합니다.
  2. API 기능 탭을 선택합니다.
  3. 클라이언트가 플레이어의 통계를 게시할 수 있도록 허용 확인란을 선택합니다. 참고: 일반적으로 이 옵션은 제출된 값에 대한 클라이언트 권한을 제공하므로 라이브 게임에서 사용하면 안 됩니다. 이는 플레이어가 통계를 속일 수 있다는 우려가 없는 경우에만 유효합니다. 통계를 안전하게 보호해야 하는 경우 클라우드 스크립트 또는 사용자 지정 게임 서버와 같은 서버 권한이 있는 작업을 통해서만 업데이트해야 합니다.
  4. 화면 아래쪽에 있는 저장 단추를 클릭합니다.

게임 관리자 - 설정 - API 기능 - 클라이언트가 플레이어의 통계를 게시할 수 있도록 허용

C# 코드 예제 - SubmitScore

이 코드 예제에서는 게임 종료 시 호출되는 SubmitScore 함수를 사용합니다.


public void SubmitScore(int playerScore) {
    PlayFabClientAPI.UpdatePlayerStatistics(new UpdatePlayerStatisticsRequest {
        Statistics = new List<StatisticUpdate> {
            new StatisticUpdate {
                StatisticName = "HighScore",
                Value = playerScore
            }
        }
    }, result=> OnStatisticsUpdated(result), FailureCallback);
}

private void OnStatisticsUpdated(UpdatePlayerStatisticsResult updateResult) {
    Debug.Log("Successfully submitted high score");
}

private void FailureCallback(PlayFabError error){
    Debug.LogWarning("Something went wrong with your API call. Here's some debug information:");
    Debug.LogError(error.GenerateErrorReport());
}

3단계 - 높은 점수에 대한 순위표 요청

게임을 플레이한 모든 플레이어의 최상위 점수 순위표를 얻기 위해 GetLeaderboard를 호출해야 합니다.

C# 코드 예제 - RequestLeaderboard

이 코드 예제에서는 순위표를 가져오기 위해 호출되는 RequestLeaderboard 함수가 있으며, 그 결과를 높은 점수를 표시하는 게임의 환경을 채울 DisplayLeaderboard 함수에 전달합니다.

//Get the players with the top 10 high scores in the game
public void RequestLeaderboard() {
    PlayFabClientAPI.GetLeaderboard(new GetLeaderboardRequest {
            StatisticName = "HighScore",
            StartPosition = 0,
            MaxResultsCount = 10
    }, result=> DisplayLeaderboard(result), FailureCallback);
}


private void FailureCallback(PlayFabError error){
    Debug.LogWarning("Something went wrong with your API call. Here's some debug information:");
    Debug.LogError(error.GenerateErrorReport());
}