다음을 통해 공유


보관된 토너먼트 결과에 액세스

이 자습서는 보관된 순위표 상태 액세스하는 방법을 보여 줍니다.

각 순위표는 수동 또는 자동으로 다시 설정할 수 있습니다. 즉, 모든 플레이어의 통계 값이 제거되며 삭제된 상태가 되고 순위표 버전이 구현됩니다.

그러나 이러한 작업이 발생하기 전에 PlayFab은 각 플레이어의 모든 순위표 통계 값 스냅샷을 생성합니다. 그러면 순위표의 보관된 버전에 액세스할 수 있습니다.

참고 항목

모든 타이틀을 통해 가장 최근에 보관된 순위표 버전에 액세스할 수 있으며, 이를 통해 현재 및 가장 이전 버전을 확인할 수 있습니다. 예를 들어 현재 순위표 버전이 3인 경우 버전 3 및 보관된 버전 2에만 액세스할 수 있습니다.

초기 설정

이 가이드를 사용하기 전에 일부 플레이어가 이미 타이틀에 등록했는지 확인합니다. 다음 스크린샷은 LoginWithCustomID API 호출을 사용하여 인위적으로 등록된 다섯 명의 플레이어를 보여 줍니다.

게임 관리자 - 플레이어 - 가장 최근 로그인

순위표 정의 및 시뮬레이트

이 단계에서는 테스트 목적을 위해 순위표를 만듭니다. 그런 다음 순위표를 여러 번 채우고 다시 설정하여 순위표 반복 프로세스를 시뮬레이트합니다.

게임 관리자 열기:

  1. 순위표 섹션으로 이동합니다.
  2. 다음과 같이 새 순위표 버튼을 선택합니다.

새 순위표를 구성하려면:

  1. 통계 이름을 TestScore로 설정합니다.
  2. 빈도 다시 설정수동으로 유지합니다.
  3. 기본값인 집계 방법을 그대로 둡니다.
  4. 순위표 저장을 선택하여 제출합니다.

게임 관리자 - 순위표 - 새 순위표 - 속성

빈 데이터를 렌더링하는 새 순위표 페이지가 표시됩니다(아래 참조).

게임 관리자 - 순위표 - 순위표 편집

테스트 섹션 시작

Important

다음 섹션은 이 예시의 목적을 위해 테스트 데이터를 채우는 방법의 예입니다. 실제 게임은 이 데이터를 더욱 자연스럽게 채웁니다.

다음 단계는 순위표에 대한 약간의 데이터 시뮬레이션입니다. 이를 수행하는 가장 빠른 방법은 주어진 플레이어에 대해 임의의 통계를 설정하는 CloudScript 처리기를 만드는 것입니다. 모든 플레이어 세그먼트의 모든 플레이어에 대해 이 처리기를 호출하겠습니다.

그 결과로 각 플레이어는 실제 시나리오와 충분히 근사한 수치인 임의 통계 값을 얻게 됩니다.

먼저 CloudScript를 정의하겠습니다(자세한 정보는 코드 주석 참조).

// Should be invoked from a task that runs over certain segment
handlers.PopulateLeaderboard = (args,ctx) => {
    // When handler is executed as a task over the segment
    // we can extract individual player id using the next line:
    let playerId = ctx.playerProfile.PlayerId;

    // Use player id and update player statistics as follows:
    server.UpdatePlayerStatistics({
        PlayFabId : playerId,
        Statistics : [
            {
                "StatisticName": "TestScore",
                "Value": getRandomInRange(100,1000)
            }
        ]
    });
}

// Utility method to generate random number
let getRandomInRange = (min, max) => {
    return Math.round(Math.random() * (max - min) + min);
}

CloudScript를 업로드합니다. 게임 관리자 사용:

  1. 자동화 탭으로 이동합니다.
  2. 그런 다음 CloudScript 하위 탭으로 이동합니다.
  3. CloudScript 코드를 삽입합니다.
  4. 수정 버전으로 저장을 선택합니다.
  5. 마지막으로, 수정 버전을 배포합니다.

게임 관리자 - 자동화 - CloudScript - CloudScript 업로드

그 다음 특정 세그먼트에 대해 CloudScript를 실행하는 작업을 정의해야 합니다.

  1. 플레이어 탭으로 이동합니다.
  2. 그런 다음 세그먼트 하위 탭으로 이동합니다.

기본적으로 PlayFab모든 플레이어 세그먼트를 생성합니다. 이 세그먼트는 타이틀에 등록된 모든 플레이어가 필요한 경우에 특히 유용합니다(바로 지금과 같은 경우).

  1. 모든 플레이어 세그먼트를 선택합니다.
  2. 마지막으로, 작업 실행...을 선택합니다.

참고 항목

목록에 모든 플레이어 세그먼트가 없는 경우 플레이어 세분화 빠른 시작을 참고하여 새로 만들 수 있습니다.

게임 관리자 - 플레이어 - 세분화 - 모든 플레이어 - 작업 실행

작업을 구성하려면:

  1. 이름을 설정합니다.
  2. 작업 유형이 세그먼트의 각 플레이어에서 동작 실행으로 설정되어 있는지 확인합니다.
    • 또한 세그먼트 아래에 모든 플레이어가 선택되어 있는지 확인합니다.
  3. 작업을 추가합니다.
  4. 유형 아래에서 CloudScript 실행을 선택합니다.
  5. 그런 다음 CloudScript 함수 아래에서 PopulateLeaderboard 처리기를 선택합니다.
  6. 마지막으로 저장 후 실행 버튼을 선택합니다.

게임 관리자 - 작업 구성

  • 실행 결과가 성공인지 확인합니다.

게임 관리자 - 작업 실행 성공

테스트 섹션 종료

테스트 데이터 채우기

  1. 순위표 탭으로 다시 이동합니다.
  2. 순위표를 선택합니다.

게임 관리자 - 순위표 - 테스트 점수

  1. 순위표가 임의의 값으로 채워진 것을 볼 수 있습니다.
  2. 순위표를 다시 설정합니다.

테스트 점수 순위표 재설정

이 작업은 현재 보유한 모든 데이터의 스냅샷을 생성한 다음 모든 플레이어에 대한 통계 값을 무효화하며 버전을 증분합니다.

  • 순위표가 재설정되면 CloudScript 작업을 다시 실행합니다.
  • 이 작업을 2~3번 반복한 다음 다시 설정하고 다시 채웁니다.

결국 여러 순위표 버전(1)이 존재하게 됩니다.

  • 현재 버전 데이터는 테이블의 왼쪽(3)에 표시됩니다.
  • 보관된 데이터는 이전 버전(2)에 대해 사용 가능합니다.
  • 최신 버전만 사용할 수 있습니다. 이는 모든 타이틀에 적용됩니다.

게임 관리자 - 순위표 - 순위표 버전

게임 관리자를 사용하여 보관된 데이터에 액세스

순위표 페이지에서 바로 보관된 결과에 액세스할 수 있습니다.

  1. 순위표 탭으로 이동합니다.
  2. 필요한 순위표를 선택합니다.

게임 관리자 - 순위표 - 순위표 선택

  1. 순위표에 보관된 수정 버전이 포함된 경우 아래 스크린샷과 같이 다운로드 링크를 사용하여 JSON 데이터를 다운로드할 수 있습니다.

게임 관리자 - 순위표 - 보관된 수정 버전 다운로드

API를 사용하여 보관된 데이터에 액세스

다음 코드를 사용하여 순위표의 최신(현재) 버전을 가져올 수 있습니다.

PlayFabClientAPI.GetLeaderboard(new GetLeaderboardRequest()
{
    StatisticName = "TestScore",
}, result =>
{
    Debug.Log("Leaderboard version: "+result.Version);
    foreach (var entry in result.Leaderboard)
    {
        Debug.Log(entry.PlayFabId+" "+entry.StatValue);
    }
}, FailureCallback);

결과는 아래에 제공된 예제와 같습니다.

디버그 출력 - 순위표 버전 표시

또는 로드하고 싶은 순위표 버전을 지정할 수 있습니다.

PlayFabClientAPI.GetLeaderboard(new GetLeaderboardRequest()
{
    StatisticName = "TestScore",
    Version = 1
}, result =>
{
    Debug.Log("Leaderboard version: "+result.Version);

    foreach (var entry in result.Leaderboard)
    {
        Debug.Log(entry.PlayFabId+" "+entry.StatValue);
    }
}, FailureCallback);

결과는 아래에 제공된 예제와 같습니다.

디버그 출력 - 순위표 버전 1 표시

모든 타이틀을 통해 최신 보관된 순위표 버전에 액세스할 수 있습니다. 이전 버전을 가져오려고 하면 오류가 발생합니다(아래 참조).

오류 - 순위표 버전을 사용할 수 없음

모든 순위표 요청에 동일한 규칙이 적용됩니다.

순위표 데이터와 관련하여 얻을 수 있는 유용한 속성에 대해 알아보려면 GetLeaderboardResult 개체에 대한 설명서를 참조하세요.