StovePCSDK_Unreal
은 언리얼 엔진의 UObject
타입의 클래스인 UStoveSDKObject
클래스를 사용합니다. 여기에는 StovePCSDK 라이브러리의 데이터 타입과 인터페이스 및 콜백함수가 재정의 되어 있습니다. 연동하기 전 Plugin
의 정의된 UStoveSDKObject
를 상속받아 게임 프로젝트 내에 UMyStoveSDKObject
를 구성한 후 사용해야 합니다.
Prefix
UMyStoveSDKObject
의 Prefix는 Unreal Engine 내에서 UObject
타입을 상속받은 클래스에 접두사 U
를 붙이는 규칙을 그대로 따랐습니다.
상속받은 UObject에서 Plugin에 Import된 인터페이스를 Super를 통해 호출합니다.
Super
상속받은 부모의 함수를 호출하기 위해 언리얼에서 제공하는 키워드는 Super
입니다.FStoveResult UStoveSDKObject::StoveSDKInit(const FStoveConfig Config)
{
FStoveResult ErrorResult = Super::StoveSDKInit(Config);
return ErrorResult;
}
Plugin
환경 구성은 PC SDK Unreal 따라하기의 프로젝트 환경 구성하기
1~3번 항목을 참고하세요
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;
}
필수적으로 연동해야 하는 OnError
, OnInitComplete
및 OnOwnership
콜백함수 외의 나머지 콜백함수는 필요 시에만 연동을 하면 됩니다. 예를 들어, 소유권(Ownership) 기능만 사용하는 경우, 아래와 같이 게임 프로젝트에 정의해서 구현하면 됩니다.
/*소유권(Ownership) 기능만 사용하는 경우는,
필수 구현 콜백인 OnError, OnInitcomplte외에
OnOwnership 콜백만 추가로 구현해서 연결합니다.*/
void UMyStoveSDKObject::OnInitComplete()
{
// 초기화 성공 후 처리내용
}
void UMyStoveSDKObject::OnError(FStoveError Error)
{
// 에러에 대한 처리내용
}
void UMyStoveSDKObject::OnOwnership(int Size, FStoveOwnership* Ownerships)
{
// 소유권 조회 후 처리내용
}
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을 확인하면 됩니다.