상속받은 UObject에서 Plugin에 Import된 인터페이스를 Super를 통해 호출합니다.

FStoveResult UStoveSDKObject::StoveSDKInit(const FStoveConfig Config)
{
    FStoveResult ErrorResult = Super::StoveSDKInit(Config);
    return ErrorResult;
}

Plugin 환경 구성은 PC SDK Unreal 따라하기의 프로젝트 환경 구성하기 1~3번 항목을 참고하세요

1. Config, Callback 설정

PC SDK를 초기화하기 위해서는, 먼저 FStoveConfig 구조체에 값을 채운 뒤, 상속받은 Actor의 UStoveSDKObject::StoveSDKInit 함수를 호출합니다.

아래 코드를 참고하여 FStoveConfig 구조체의 각 필드 값을 채웁니다.

FStoveConfig Config{"LIVE",
                    "YOUR_APP_KEY",
                    "YOUR_SECRET_KEY",
                    "YOUR_GAME_ID",
                    StovePCLogLevel::STOVE_PC_LOG_LEVEL_DEBUG,
                    ""}; // Logpath

<aside> 💡 주의사항

PCSDK 로그경로는 절대적경로로 설정해야 합니다. ex) C:\\Program Files\\{Your Game Folder}\\Logs 마지막에 "\"는 추가하지 않습니다. PCSDK 에서 "StovePCSDK.log" 파일명을 자동으로 추가합니다.

만약 "" 빈문자열로 경로를 설정하게 되면 PCSDK는 자동적으로 게임실행파일 폴더 또는 PCSDK DLL 이 위치한 폴더의 경로로 로그가 생성됩니다.

로그레벨 설정시 SANDBOX환경은 StovePCLogLevel::STOVE_PC_LOG_LEVEL_DEBUG 값으로 설정하고, LIVE환경은 StovePCLogLevel::STOVE_PC_LOG_LEVEL_ERROR 값으로 설정하기 바랍니다.

</aside>

FStoveConfig 구조체 에 대한 설명은 Plugins\\StoveSDKPlugin\\Source\\StoveSDKPlugin\\Public폴더의 StoveSDKStruct.h 파일을 참고하세요.

게임 프로젝트에서 PC SDK의 API를 호출하고 그 결과를 확인하기 위해서는 콜백함수를 사용해야 합니다. 게임 프로젝트에서는 사용하게 되는 콜백함수는 아래와 같습니다.

{
//StovePCSDK Callback
public:
    void OnError(FStoveError Error) final;
    void OnInitComplete() final;
    void OnToken(FStoveToken Token) final;
    void OnUser(FStoveUser User) final;
    void OnOwnership(int Size, FStoveOwnership* Ownerships) final;
}

필수적으로 연동해야 하는 OnErrorOnInitComplete 및 OnOwnership 콜백함수 외의 나머지 콜백함수는 필요 시에만 연동을 하면 됩니다. 예를 들어, 소유권(Ownership) 기능만 사용하는 경우, 아래와 같이 게임 프로젝트에 정의해서 구현하면 됩니다.

/*소유권(Ownership) 기능만 사용하는 경우는,
필수 구현 콜백인 OnError, OnInitcomplte외에
OnOwnership 콜백만 추가로 구현해서 연결합니다.*/
void UMyStoveSDKObject::OnInitComplete()
{
    // 초기화 성공 후 처리내용
}

void UMyStoveSDKObject::OnError(FStoveError Error)
{
    // 에러에 대한 처리내용
}

void UMyStoveSDKObject::OnOwnership(int Size, FStoveOwnership* Ownerships)
{
    // 소유권 조회 후 처리내용
}

2. SDK 초기화

PC SDK의 API를 사용하기 전에 초기화를 위해 MyStoveSDKObject.cpp의 UMyStoveSDKObject::StoveSDKInit 함수에 아래 코드와 같이 초기화 코드를 입력합니다.

FStoveResult UMyStoveSDKObject::StoveSDKInit(const FStoveConfig& Config)
{
    FStoveResult ErrorResult = Super::StoveSDKInit(Config);
    if (ErrorResult.Result == StovePCResult::STOVE_PC_NO_ERROR)
    {
        /*StovePCSDK init 성공*/

    }
}

UMyStoveSDKObject::StoveSDKInit함수는 config와 callback의 유효성 여부만 확인한 후, 즉시 FStovePCResult enum 타입 값을 반환합니다. 성공한 경우, STOVE_PC_NO_ERROR 값이 반환됩니다. 실패한 경우는 해당 에러 코드를 반환하며 게임 종료를 처리해야 합니다. 전체 에러 코드 목록은 StovePCDefine.h 파일의 StovePCResult enum을 확인하면 됩니다.