토너먼트 및 순위표 빠른 시작
이 빠른 시작에서는 플레이어의 높은 점수를 추적하는 통계를 보유하는 방법과 상위 점수 순위표를 얻는 방법을 설명합니다. 글로벌 순위표에 사용하거나 재설정 가능한 통계와 함께 사용하여 특정 이벤트 또는 토너먼트에 대해 재설정할 수 있습니다.
필수 구성 요소
플레이어가 이미 PlayFab에 로그인되어 있습니다.
1단계 - 통계 및 관련 순위표 만들기
게임 관리자에서:
- 왼쪽 메뉴에서 순위표로 이동합니다.
- 새 순위표를 선택합니다.
- 통계 이름 필드에 HighScore라는 순위표를 추가합니다.
- 제공된 드롭다운 메뉴를 사용하여 빈도 다시 설정 필드를 수동으로 설정합니다.
- 집계 방법 필드로 이동하고 제공된 드롭다운 메뉴에서 최대(항상 가장 큰 값 사용)을 선택합니다.
2단계 - 플레이어의 높은 점수로 통계 업데이트
클라이언트에서 UpdatePlayerStatistics를 사용하려면 API 기능에서 활성화해야 합니다.
- 타이틀의 설정 메뉴에서 타이틀 설정을 선택합니다.
- 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());
}