다음을 통해 공유


플레이어 통계 사용

이 자습서에서는 플레이어 통계를 만들고 사용하는 방법을 설명합니다. 플레이어 통계는 KVP(키 값 쌍)로 저장됩니다. 여기서 키는 문자열이고 값은 32비트 정수입니다(64비트를 지원하지 않는 언어와의 호환성을 위해).

플레이어 통계는 순위표에서도 사용되지만 이 가이드에서는 플레이어 통계만 다룹니다. 플레이어 통계와 순위표가 함께 작동하는 방법에 대해 읽으려면 자습서 재설정 가능한 통계 및 순위표 사용을 참조하세요.

참고 항목

일부 문서 및 API 호출에서 UserStatistics라는 용어를 찾을 수 있습니다. 이 토론의 목적상 ‘사용자’ 및 ‘플레이어’라는 용어는 동일하고 서로 바꿔 사용할 수 있습니다. 게임 관리자 페이지의 플레이어 탭에서는 타이틀 및 타이틀 내 통계에 사용자/플레이어가 액세스할 수 있습니다. 플레이어 통계는 플레이어에 관한 분석 정보가 아닌 플레이어에 한정되는 정보만 참조합니다.

클라이언트 API

클라이언트는 플레이어 통계를 읽을 수 있지만 부정 행위를 방지하기 위해 클라이언트는 기본적으로 통계를 업데이트할 수 없습니다.

이렇게 설정하려면 다음을 수행합니다.

  • PlayFab에 로그인
  • 타이틀을 선택합니다.
  • 왼쪽 메뉴에서 설정을 선택합니다.
  • API 기능 탭을 선택합니다.
  • Allow client to post player statistics(클라이언트가 플레이어의 통계를 게시할 수 있도록 허용)를 찾아 활성화합니다.

참고 항목

이렇게 하면 타이틀의 보안 계층이 비활성화되어 플레이어가 모든 통계에 대해 임의의 점수를 게시할 수 있습니다. 게임에 ‘어떠한’ 경쟁적인 플레이 양상이 있는 경우 클라이언트로부터 통계를 게시하지 ‘않아야’ 합니다.

통계는 공개 정보입니다.

개인 또는 서버 전용 통계가 없습니다. 플레이어는 GetPlayerStatistics를 통해 항상 모든 통계를 읽고 순위표 API 호출을 통해 다른 플레이어의 통계를 읽을 수 있습니다. 게임 내 통계를 표시하지 ‘않거나’ 순위표를 사용하는 경우에도 참입니다.

이에 대한 유일한 예외는 API 액세스 정책을 통해 클라이언트 기능을 비활성화하는 경우입니다. 타이틀에 대한 정책 설정을 사용하는 방법에 대한 자세한 내용은 고급 주제이므로 이 자습서에서는 다루지 않으니 해당 링크를 참조하세요.

설정 통계

다음 Unity/C# 코드에서는 플레이어에 대한 강도 통계 값을 생성합니다(또는 이미 있는 경우 업데이트).

PlayFabClientAPI.UpdatePlayerStatistics( new UpdatePlayerStatisticsRequest {
    // request.Statistics is a list, so multiple StatisticUpdate objects can be defined if required.
    Statistics = new List<StatisticUpdate> {
        new StatisticUpdate { StatisticName = "strength", Value = 18 },
    }
},
result => { Debug.Log("User statistics updated"); },
error => { Debug.LogError(error.GenerateErrorReport()); });

통계 가져오기

다음 Unity/C# 코드에서는 플레이어에 대한 현재 모든 통계 값을 가져옵니다.

void GetStatistics()
{
    PlayFabClientAPI.GetPlayerStatistics(
        new GetPlayerStatisticsRequest(),
        OnGetStatistics,
        error => Debug.LogError(error.GenerateErrorReport())
    );
}

void OnGetStatistics(GetPlayerStatisticsResult result)
{
    Debug.Log("Received the following Statistics:");
    foreach (var eachStat in result.Statistics)
        Debug.Log("Statistic (" + eachStat.StatisticName + "): " + eachStat.Value);
}

집계 방법

PlayFab에서는 통계 집계에 몇몇 편리한 옵션을 지원합니다. 네 가지 옵션은 다음을 포함합니다.

  • 마지막
  • Min
  • Max
  • Sum

통계 정의가 요구되지 않더라도 CreatePlayerStatisticDefinition API 호출을 통해 이를 만들 수 있습니다. 타이틀에 대한 플레이어 통계를 업데이트하는 호출은 Last Aggregation 메서드를 사용하여 ‘자동으로’ 기본 통계 정의를 만듭니다.

통계 집계 메서드를 변경하려면 게임 관리자 또는 UpdatePlayerStatisticDefinition API 호출을 사용할 수 있습니다.

게임 관리자에서 통계 정의를 편집하려면 다음을 수행합니다.

  • PlayFab에 로그인

  • 타이틀을 선택합니다.

  • 왼쪽 메뉴에서 순위표를 선택합니다(통계순위표가 밀접하게 관련이 있음).

  • 수정하려는 기존 통계를 선택하거나

  • 새 순위표 단추를 선택합니다.

    • 기존 통계의 경우 순위표 편집 단추가 있는 또 다른 페이지가 있습니다.
  • 이때 아래와 같은 페이지가 표시됩니다.

    PlayFab 순위표 - 순위표 편집 - 통계 집계

통계 집계를 사용하는 방법에 대한 몇 가지 예제는 다음과 같습니다.

  • 최대최소는 헤드샷 또는 정확성과 같은 최상/최악의 점수를 저장하는 데 사용할 수 있습니다.

    • 즉, 이 점수가 기존 점수보다 높은(낮은) 경우 점수를 업데이트합니다.라는 규칙을 적용합니다.
    • 완료 중인 세션의 통계를 게시하면 최소/최대 집계에서 업데이트할지 여부를 판단합니다.
    • 이러한 동작은 재설정 가능한 순위표 및 도전 과제를 제공하는 PlayStream 규칙에 매우 유용할 수 있습니다.
  • 합계는 경험 점수를 저장하는 데 사용할 수 있습니다.

    • 이 전투에서 얻은 경험을 게시하면 해당 플레이어에 대한 기존 통계 값에 추가됩니다.
  • 마지막을 사용하여 통계를 스스로 관리할 수 있습니다.

    • 통계를 게시할 때마다 최근 값이 사용됩니다.

순위표

순위표는 PlayFab에 저장된 모든 통계에 대해 생성됩니다. 특정 통계에 대한 순위표에 액세스하는 것은 선택 사항입니다.

빈도 및 집계 재설정 메서드는 순위표가 게임에서 얼마나 동적으로 작동하는지에 큰 역할을 합니다. 토너먼트 기능은 빈도 자동 재설정이 있는 순위표에 중점을 두며 자습서 재설정 가능한 통계 및 순위표 사용에 설명되어 있습니다.

게임과 관련된 모든 면에서 통계를 사용할 것을 권장합니다. 재설정 가능한 통계를 사용하여 일일 토너먼트 및 경험치 점수와 같은 장기 통계를 나란히 실행할 수 있습니다.