빠른 시작: Unreal Engine용 PlayFab 클라이언트 라이브러리

Unreal Engine용 PlayFab 플러그 인을 시작합니다. 이 빠른 시작에 따라 PlayFab Unreal Engine 플러그 인을 설치하고 C++ 클라이언트 라이브러리 및 Blueprint 인터페이스를 사용하는 예제 앱을 만듭니다.

Unreal Engine용 PlayFab 플러그 인을 사용하여 타이틀의 LiveOps를 관리하고 다음과 같은 관리자, 클라이언트, 서버 작업을 수행할 수 있습니다.

필수 조건

Unreal 프로젝트 만들기

Unreal Engine에서 새 Unreal 프로젝트를 만듭니다. 자세한 지침은 새 프로젝트 만들기 가이드를 따르세요.

  1. 프로젝트 범주에서 게임을 선택합니다.
  2. 템플릿 선택에서 비어 있음을 선택합니다.
  3. 프로젝트 설정에서 C++ 또는 Blueprint를 선택합니다.
  4. No Starter Content(시작 콘텐츠 없음)를 선택합니다.
  5. 프로젝트의 이름(예: MyProject)을 선택합니다.

Unreal 프로젝트에서 PlayFab 플러그 인 사용

PlayFab 플러그인을 사용하도록 설정하려면 다음과 같이 합니다.

  1. 설정 메뉴의 게임별 설정에서 플러그 인을 선택합니다.
  2. PlayFab 플러그 인을 사용하도록 설정하고 필요에 따라 Unreal Engine을 다시 시작합니다.

C++에서 PlayFab을 모듈 종속성으로 추가

Visual Studio에서 C++ 프로젝트의 모듈 종속성으로 추가합니다.

  1. 보기 메뉴에서 C++ 프로젝트 파일을 표시하는 솔루션 탐색기를 엽니다.

  2. 솔루션 탐색기에서 Solution\Games\YourProjectName\Source로 이동하고 YourProjectName.Build.cs를 엽니다.

  3. 다음 줄을 추가합니다.

    PrivateDependencyModuleNames.AddRange(new string[] { "PlayFab", "PlayFabCpp", "PlayFabCommon" });
    
  4. 변경 사항을 저장합니다.

필요한 Visual Studio 프로젝트 파일 생성

PlayFab 플러그 인을 사용하는 데 필요한 Visual Studio 프로젝트 파일을 업데이트하고 생성하려면 다음을 수행합니다.

  1. 파일 탐색기 창을 열고 프로젝트 파일이 있는 폴더로 이동합니다.
  2. 프로젝트의 루트 폴더에서 YourProjectName.uproject 파일을 마우스 오른쪽 단추로 클릭합니다.
  3. 상황에 맞는 메뉴에서 Generate Visual Studio project files(Visual Studio 프로젝트 파일 생성)를 선택합니다.

C++로 PlayFab 호출

다음 단계에서는 사용자 지정 ID를 사용하여 PlayFab에 로그인하는 타일을 만드는 단계를 안내합니다. Blueprints 프로젝트에서 로그인하는 방법에 대한 자세한 내용은 이 문서의 뒷부분에 있는 “Unreal Blueprints에서 PlayFab 호출”을 참조하세요.

새 행위자 만들기

새 행위자를 만들려면 다음과 같이 하세요.

  1. 파일 메뉴에서 새 C++ 클래스를 선택합니다.

  2. 부모 클래스에서 행위자를 선택합니다.

  3. 행위자 이름을 LoginActor로 지정합니다. 행위자를 만들면 Unreal Engine은 C++ 개발 환경을 자동으로 열고 LoginActor.cpp 및 LoginActor.h를 로드합니다.

    Important

    이 빠른 시작에서는 행위자 이름을 LoginActor로 지정해야 합니다. 행위자에게 다른 이름을 지정하는 경우 이 빠른 시작에 제공된 샘플 코드를 새 이름과 일치하도록 업데이트해야 합니다.

  4. 콘텐츠 브라우저에서 새 행위자 LoginActor를 뷰포트 패널로 끌어다 놓습니다. 이제 "World Outliner" 창에 표시됩니다. LoginActor가 보이지 않으면 Show or hide the source panel(원본 패널 표시 또는 숨기기)을 선택합니다. 그런 다음, C++ 클래스 아래에서 프로젝트 이름을 선택합니다.

    원본 패널 아이콘을 보여 주는 콘텐츠 브라우저입니다.

월드의 Login Actor

C++ LoginActor에 PlayFab API 호출 추가

이 빠른 시작에서는 LoginWithCustomID를 사용하여 로그인을 수행합니다. LoginWithCustomId은(는) 시작하기는 쉽지만, 게임 릴리스를 위해 보다 안전한 플레이어 인증 방법으로 이동하는 것이 좋습니다. 강력한 로그인 기능 구현에 대한 자세한 내용은 로그인 기본 사항 및 모범 사례를 참조하세요.

LoginWithCustomID 호출은 LoginActor에서 수행됩니다. PlayFab 관련 코드를 LoginActor에 추가하려면 다음을 수행합니다.

  1. LoginActor.h의 내용을 표시된 코드로 바꿉니다.
#pragma once

#include "CoreMinimal.h"
#include "GameFramework/Actor.h"
#include "PlayFab.h"
#include "Core/PlayFabError.h"
#include "Core/PlayFabClientDataModels.h"
#include "LoginActor.generated.h"

UCLASS()
class ALoginActor : public AActor
{
    GENERATED_BODY()
public:
    ALoginActor();
    virtual void BeginPlay() override;
    void OnSuccess(const PlayFab::ClientModels::FLoginResult& Result) const;
    void OnError(const PlayFab::FPlayFabCppError& ErrorResult) const;

    virtual void Tick(float DeltaSeconds) override;
private:
    PlayFabClientPtr clientAPI = nullptr;
};
  1. LoginActor.cpp의 내용을 다음 코드로 바꿉니다.
#include "LoginActor.h"
#include "Core/PlayFabClientAPI.h"

ALoginActor::ALoginActor()
{
    PrimaryActorTick.bCanEverTick = true;
}

void ALoginActor::BeginPlay()
{
    Super::BeginPlay();
    
    GetMutableDefault<UPlayFabRuntimeSettings>()->TitleId = TEXT("144");
    
    clientAPI = IPlayFabModuleInterface::Get().GetClientAPI();

    PlayFab::ClientModels::FLoginWithCustomIDRequest request;
    request.CustomId = TEXT("GettingStartedGuide");
    request.CreateAccount = true;

    clientAPI->LoginWithCustomID(request,
        PlayFab::UPlayFabClientAPI::FLoginWithCustomIDDelegate::CreateUObject(this, &ALoginActor::OnSuccess),
        PlayFab::FPlayFabErrorDelegate::CreateUObject(this, &ALoginActor::OnError)
    );
}

void ALoginActor::OnSuccess(const PlayFab::ClientModels::FLoginResult& Result) const
{
    UE_LOG(LogTemp, Log, TEXT("Congratulations, you made your first successful API call!"));
}

void ALoginActor::OnError(const PlayFab::FPlayFabCppError& ErrorResult) const
{
    UE_LOG(LogTemp, Error, TEXT("Something went wrong with your first API call.\nHere's some debug information:\n%s"), *ErrorResult.GenerateErrorReport());
}

void ALoginActor::Tick(float DeltaTime)
{
    Super::Tick(DeltaTime);
}

Visual Studio의 Intellisense에 포함 파일 및 PlayFab 네임스페이스를 찾을 수 없다고 표시됩니다. 이러한 경고는 무시해도 됩니다. 프로젝트를 실행하면 프로젝트가 올바르게 빌드되고 실행됩니다.

C++ 완료 및 실행

이제 C++에서 Unreal Engine의 PlayFab 호출을 테스트할 준비가 되었습니다. 테스트 호출 결과는 Unreal Engine의 출력 로그에 표시됩니다.

Unreal Engine에서:

  1. Windows 메뉴에서 출력 로그를 표시하고 개발자 도구를 선택하고 출력 로그를 사용하도록 설정합니다.
  2. 도구 모음에서 컴파일 선택하고 Unreal Engine이 컴파일을 완료할 때까지 기다립니다. 코드가 컴파일되는 동안 Unreal은 “Compiling C++ Code”(C++ 코드 컴파일 중)를 표시합니다.
  3. 재생을 선택합니다. 코드가 실행되면 Unreal은 출력 로그 창에 다음을 표시합니다.

LogTemp: Congratulations, you made your first successful API call!

출력 로그 호출 성공

Unreal Blueprints에서 PlayFab 호출

이 섹션에서는 PlayFab API를 사용하여 LoginWithCustomID를 호출하는 청사진 구조를 만드는 방법을 안내합니다. LoginWithCustomId은(는) 시작하기는 쉽지만, 게임 릴리스를 위해 보다 안전한 플레이어 인증 방법으로 이동하는 것이 좋습니다. 강력한 로그인 기능 구현에 대한 자세한 내용은 로그인 기본 사항 및 모범 사례를 참조하세요.

청사진 프로젝트에서 시작하는 경우 PlayFab 청사진 작업이 작동하려면 C++ 프로젝트로 변환해야 합니다.

청사진 구조 만들기

Unreal Engine의 도구 모음에서 Open Level Blueprint(레벨 청사진 열기)를 선택합니다.

예제 오픈 청사진 수준 이미지

EventGraph가 열리고 두 개의 작업 Event BeginPlayEvent Tick.

이 빠른 시작에서 사용되는 작업:

  • Set Play Fab Settings
  • Login with Custom ID
  • Make ClientLoginWithCustomIDRequest
  • AddCustomEvent x 2
  • Break PlayFabError
  • Print String x 2

다음과 같이 청사진을 만듭니다.

  • Event BeginPlay에서 출력 핀을 선택하고 Event Graph(이벤트 그래프)의 열린 위치로 끌어옵니다. Executable Actions(실행 가능한 작업) 대화 상자에서 Set Play Fab Settings를 검색하고 선택하여 청사진에 추가합니다. Set Play Fab Settings에서 게임 타이틀 ID가 비어 있으면 게임의 타이틀 ID로 설정합니다.

  • Set Play Fab Settings에서 출력 핀을 선택하고 열려 있는 위치로 끌어옵니다. Executable Actions(실행 가능한 작업) 대화 상자에서 Login with Custom ID를 검색하고 선택하여 청사진에 추가합니다.

  • Login with Custom ID에서 요청 핀을 선택하고 빈 위치로 끌어옵니다. 사용자 지정 ID 요청 구조로 클라이언트 로그인을 제공하는 작업에서 Make ClientLoginWithCustomIDRequest을(를) 선택합니다.

  • Make ClientLoginWithCustomIDRequest에서 다음을 수행합니다.

    • 계정 만들기를 선택합니다.
    • 사용자 지정 ID를 GettingStartedGuide로 설정합니다.
  • Login with Custom ID에서 성공 시 핀을 선택하고 빈 위치로 끌어옵니다. 대리인을 제공하는 작업에서 Add Custom Event을(를) 검색하고 선택하여 청사진에 추가합니다.

    • 이름을 OnLogin으로 지정합니다.
  • On Failure(실패 시) 핀을 선택하고 빈 위치로 끌어옵니다. 대리인을 제공하는 작업에서 Add Custom Event을(를) 검색하고 선택하여 청사진에 추가합니다.

    • 이름을 OnFailure으로 지정합니다.
  • OnLogin에서 출력 핀을 선택하고 빈 위치로 끌어옵니다. 실행 가능한 작업 대화 상자에서 Print String을(를) 검색하고 선택하여 청사진에 추가합니다.

    • Print String에서 문자열로 값을 “Congratulations, you made your first successful PlayFab API call using Blueprint!”(축하합니다. 청사진을 사용하여 첫 번째 PlayFab API 호출을 완료했습니다!)로 설정합니다.
  • OnFailure에서 출력 핀을 선택하고 빈 위치로 끌어옵니다. 실행 가능한 작업 대화 상자에서 Print String을(를) 검색하고 선택하여 청사진에 추가합니다.

  • OnFailure에서 오류 핀을 선택하여 빈 위치로 끌어옵니다. 문자열을 제공하는 작업 대화 상자에서 Break PlayFabError를 검색하고 선택하여 청사진에 추가합니다. Play Fab 오류 구조를 사용하는 작업 대화 상자에서 Break PlayFabError를 검색하고 선택하여 청사진에 추가합니다.

  • Break PlayFabError오류 메시지 핀을 실패 시 Print String 작업의 In String(문자열로) 핀에 연결합니다.

완료되면 청사진은 다음 디자인과 유사하게 표시됩니다.

청사진 UI를 열었습니다.

청사진을 저장하고 청사진 편집기 창을 닫습니다.

청사진을 사용하여 PlayFab 호출 실행

  1. 도구 모음에서 재생 단추를 선택합니다.

  2. 청사진이 실행되면 뷰포트 창에 다음 출력이 표시됩니다.

    청사진 로그 성공

Congratulations, you made your first successful PlayFab API call using Blueprint!(“축하합니다. 청사진을 사용하여 첫 번째 PlayFab API 호출을 완료했습니다!)

추가 리소스