빠른 시작: 플레이어 데이터 설정 및 가져오기

참고 항목

PlayFab API에서 함수 이름은 UserData라는 용어를 사용합니다. 게임 관리자에서 이 개념은 플레이어 데이터로 설명됩니다. 이 두 개념은 동일하며 서로 바꿔서 사용할 수 있습니다.

PlayFab 플레이어 데이터를 시작합니다. 이 빠른 시작에서는 Unity의 C# 및 PlayFab CloudScript를 사용하여 플레이어 데이터를 설정하고 검색하는 방법을 보여줍니다.

플레이어 데이터는 개별 플레이어 또는 플레이어 그룹(공유 데이터)에 적용되는 정보이며 PlayFab에서 KVP(키/값 쌍)로 저장됩니다. 이 문서에서는 모든 프로세스나 컨텍스트에서 안전하게 호출할 수 있는 클라이언트 API 호출을 다룹니다. 또한 서버 API 호출에 대해서도 다루며 제어하는 전용 서버 프로세스에서‘만’ 만들거나 안전하게 보호되는 CloudScript 호출이어야 합니다. 서버 API를 사용하려면 개발자 비밀 키가 필요하며, 이 키는 클라이언트에게 제공하거나 발행해서는 안 됩니다.

이 문서의 C# 샘플은 Unity SDK용으로 작성되었습니다. Unity SDK는 이벤트 기반 모델을 사용하여 비동기 작업을 처리합니다. 표준 C# 또는 Xamarin C# SDK를 사용하여 샘플 코드를 실행하려면 비동기 작업 모델을 사용하도록 코드를 수정해야 합니다. 수정해야 하는 메서드에는 서명의 메서드 이름에 Async가 추가됩니다. 예를 들어 Unity SDK의 SetObject는 표준 SDK C#의 SetObjectAsync가 됩니다. 자세한 내용은 async 및 await를 사용한 비동기 프로그래밍을 참조하세요.

요구 사항

  • PlayFab 개발자 계정
  • 설치된 Unity 편집기 복사본. Unity Hub를 통해 개인용 Unity를 설치하거나 전문가용 Unity+를 설치하려면 Unity 다운로드를 참조하세요.

    참고 항목

    PlayFab Unity3D SDK는 Unity 편집기 버전 5.3(2015년 12월 릴리스) 이상을 지원합니다.

  • Unity 프로젝트 – 다음 중 하나일 수 있습니다.
  • PlayFab Unity3D SDK

PlayFab Unity3D SDK를 설정하는 방법에 대한 자세한 내용은 PlayFab 계정이 있고 Unity3D SDK를 구성했는지 확인하는 빠른 시작: Unity의 C#용 PlayFab 클라이언트 라이브러리 문서를 참조하세요.

코드 예제 정보

이 문서의 C# 샘플은 Unity SDK용으로 작성되었습니다. Unity SDK는 이벤트 기반 모델을 사용하여 비동기 작업을 처리합니다. 표준 C# 또는 Xamarin C# SDK를 사용하여 샘플 코드를 실행하려면 비동기 작업 모델을 사용하도록 코드를 수정해야 합니다. 수정해야 하는 메서드에는 서명의 메서드 이름에 Async가 추가됩니다. 예를 들어 Unity SDK의 SetObject는 표준 SDK C#의 SetObjectAsync가 됩니다. 자세한 내용은 async 및 await를 사용한 비동기 프로그래밍을 참조하세요.

기존 Unity Project를 사용할 수도 있지만 이 빠른 시작의 절차에서는 빠른 시작: Unity의 C#용 PlayFab 클라이언트 라이브러리를 완료할 때 만든 샘플을 사용한다고 가정합니다.

게임 관리자의 플레이어 데이터

다음 단계를 수행하여 게임 관리자를 통해 항상 플레이어 데이터를 가져오고 설정할 수 있습니다.

  • 게임 관리자를 엽니다. 이에 대해 익숙하지 않은 경우 게임 관리자 빠른 시작을 참조하세요.
  • 플레이어 탭을 선택합니다.
  • 플레이어의 이름을 선택합니다. 이렇게 하면 플레이어 계정 탭으로 이동합니다.
  • 플레이어 데이터 탭을 선택하여 해당 데이터를 봅니다.

플레이어 데이터를 설정하고 플레이어 데이터를 검색하는 메서드 추가

  1. Unity 편집기에서 샘플 프로젝트를 엽니다.

  2. 프로젝트 창에서 자산>스크립트를 연 다음 PlayFabLogin 스크립트를 엽니다.

  3. Visual Studio에서 다음 using 문을 추가합니다.

    using System.Collections.Generic;

  4. 플레이어 데이터를 설정하려면 PlayFabLogin 클래스에 SetUserData 메서드를 추가합니다. SetUserData은(는) UpdateUserData 메서드를 사용하여 로그인한 플레이어의 플레이어 데이터를 만들거나 업데이트합니다.

    이 메서드는 값이 ArthurAncestor와 값이 FredSuccessor의 KVP(키 값 쌍)를 만들거나 업데이트(KVP가 이미 있는 경우)합니다.

    void SetUserData() {
        PlayFabClientAPI.UpdateUserData(new UpdateUserDataRequest() {
            Data = new Dictionary<string, string>() {
                {"Ancestor", "Arthur"},
                {"Successor", "Fred"}
            }
        },
        result => Debug.Log("Successfully updated user data"),
        error => {
            Debug.Log("Got error setting user data Ancestor to Arthur");
            Debug.Log(error.GenerateErrorReport());
        });
    }
    
  5. 플레이어 데이터를 가져오려면 PlayFabLogin 클래스에 GetUserData 메서드를 추가합니다. SetUserData은(는) GetUserData 메서드를 사용하여 지정된 플레이어의 플레이어 데이터를 검색합니다.

    void GetUserData(string myPlayFabId) {
        PlayFabClientAPI.GetUserData(new GetUserDataRequest() {
            PlayFabId = myPlayFabId,
            Keys = null
        }, result => {
            Debug.Log("Got user data:");
            if (result.Data == null || !result.Data.ContainsKey("Ancestor")) Debug.Log("No Ancestor");
            else Debug.Log("Ancestor: "+result.Data["Ancestor"].Value);
        }, (error) => {
            Debug.Log("Got error retrieving user data:");
            Debug.Log(error.GenerateErrorReport());
        });
    }
    
  6. OnLoginSuccess 메서드에서 SetUserDataGetUserData에 대한 추가 호출을 호출하려면 다음을 수행합니다.

    private void OnLoginSuccess(LoginResult result) {
        Debug.Log("Congratulations, you made your first successful API call!");
        SetUserData();
        GetUserData(result.PlayFabId);
    }
    
  7. 파일을 저장합니다.

샘플 실행

Unity 편집기에서 재생 단추를 선택합니다. 성공하면 호출 결과가 콘솔 창에 표시됩니다.

참고 항목