# PC SDK Unity 따라하기

Unity엔진 게임에 STOVE PC SDK 2.0을 적용하는 방법을 알아보는 따라하기 예제입니다.

confirm 따라하기 예제를 진행하기 전에 STOVE 런처 (opens new window) 를 미리 설치하고 SDK 개발환경 준비하기 (opens new window)를 참고하여 App key, App secret, Game Id를 미리 발급받아야 합니다. 예제는 Unity 2017 이상, VisualStudio 2017 이상 버전을 권장합니다.

# STOVE 런처 설정

(1) PC 클라이언트 다운로드 (opens new window)에서 STOVE 런처를 다운로드합니다.

(2) STOVE 런처가 설치된 폴더에 PolicyConfig.json 파일을 생성

  • Live 기본 설치위치 : C:\Program Files (x86)\Smilegate\STOVE

(3) PolicyConfig.json 파일에 아래 내용을 입력하고 STOVE Studio 프로젝트 등록시에 생성

주의사항

SDK 연동 중에는 STOVE 런처를 실행 후 로그인 된 상태여야 합니다.

아래와 같은 구조로 PolicyConfig.json을 생성한 후

  • Live : C:\Program Files (x86)\Smilegate\STOVE

폴더에 덮어씁니다.Game ID를 확인한 후 교체합니다.




 



{
  "skip_check_game_list":
  [
    "id_hellostove"
  ]
}
1
2
3
4
5
6

참고

"id_hellostove"는 STOVE Partners에 등록한 gameID로 변경 하시면 됩니다.

(4) STOVE 런처를 실행하고 STOVE에 가입한 신청한 스토브ID로 로그인

# 따라하기용 HelloStove 프로젝트 다운로드

다운로드가 완료되면 압축을 풀어 줍니다.
이 프로젝트는 아직 PC SDK가 연동되지 않은 상태입니다. 지금부터 PC SDK 연동을 시작합니다

# 1) 프로젝트 다운로드

다운로드가 완료되면 압축을 풀어 줍니다.
이 프로젝트는 아직 PC SDK가 연동되지 않은 상태입니다. 지금부터 PC SDK 연동을 시작합니다.

# 2) 유니티 패키지 다운로드

다른 버전의 유니티를 사용하고 있다면 아래 링크에서 따라하기용 HelloStove_UnityPackage 압축파일을 다운로드 합니다. 사용하는 버전의 유니티 에디터로 프로젝트를 만들고 따라하기를 진행할 경우에 해당됩니다.

다운로드가 완료되면 압축을 풀어줍니다. 만들어둔 프로젝트 Assets 폴더 하위에 HelloStove_UnityPackage.unitypackage 커스텀 패키지를 임포트합니다.

# 3) 따라하기 프로젝트 열기

이 프로젝트는 아직 PC SDK가 연동되지 않은 상태입니다. 지금부터 PC SDK 연동을 시작합니다. Unity Editor에서 HellowStove_Unity 프로젝트(또는 직접 만든 프로젝트)를 엽니다

# 프로젝트 환경 구성하기

StovePCSDK_NET의 압축을 푼 다음 x86(32비트)폴더와 x86_64(64비트)폴더 중 하나를 삭제한 후 StovePCSDK 폴더를 HelloStove_Unity 프로젝트의 Assets 폴더에 복사(덮어쓰기)합니다. x86폴더와 x86_64폴더가 둘다 있으면 빌드 에러가 발생할 수 있습니다.

# 1) 씬(Scene) 실행

  • Unity Editor의 프로젝트 패널에서 Assets > StovePCSDK > Scenes > HelloStove.unity 씬을 더블클릭하여 로드합니다.
  • 씬 뷰의 툴바에서 2D 버튼을 클릭합니다.
  • 씬 뷰 화면에 캔버스가 잘 보이지 않으면 하이어라키 뷰에서 HelloStove > Canvas 게임오브젝트를 더블클릭합니다.
  • Editor 툴바에 Play 버튼을 클릭합니다.
  • 모든 설정에 이상이 없다면 게임뷰에서 씬이 실행됩니다.
  • Editor 툴바에 Play 버튼을 다시 클릭하여 씬 실행을 종료합니다.

# 2) 빌드하기

  • File > BuildSetting 메뉴를 클릭합니다.
  • Build Settings 창에서 Build 버튼을 클릭합니다.
  • Build Window 창에서 빌드 결과물이 저장 될 폴더를 선택합니다.
  • 파일이름란에 "HelloStove"를 입력하고 저장 버튼을 클릭합니다.
  • 모든 설정에 이상이 없다면 컴파일 에러 없이 정상적으로 빌드됩니다.

Figure1

# 3) 스크립트 작성 준비

  • Assets > StovePCSDK > Scenes > Scripts > StovePCSDKManager.cs 파일을 엽니다.

# 4) StovePCConfig

Assets > StreamingAssets > Text > StovePCConfig.Unity.txt 파일을 열고
Stove Studio (opens new window)에서 사전에 발급 받은 AppKey, AppSecret, GameId 값을 채워 넣은 후 저장합니다.

Figure1

confirm "YOUR_APP_KEY", "YOUR_SECRET_KEY", "YOUR_GAME_ID"는 사전에 발급 받은 데이터로 변경해야 됩니다.
만약 STOVE Studio에 입점 신청한 스토브 계정으로 스토브 런처에 로그인 하지 않고 StovePC.Initialize 함수가 호출되면 150 에러코드(sgup 초기화 실패)가 발생합니다.

# SDK 초기화

StovePCSDK_NET를 초기화하려면 StovePCConfigStovePCCallback 구조체에 값을 채운 다음, StovePC.Initialize 메서드를 호출합니다.
아래 코드 조각을 ButtonInitialize_Click 메서드에 작성합니다.

confirm 스토브 런처에 로그인 하지 않은 상태로 StovePC.Initialize 함수를 호출하면 에러가 발생합니다.

StovePCConfig config = new StovePCConfig
{
    Env = this.Env,
    AppKey = this.AppKey,
    AppSecret = this.AppSecret,
    GameId = this.GameId,
    LogLevel = this.LogLevel,
    LogPath = this.LogPath
};

this.callback = new StovePCCallback
{
    OnError = new StovePCErrorDelegate(this.OnError),
    OnInitializationComplete = new StovePCInitializationCompleteDelegate(this.OnInitializationComplete),
    OnToken = new StovePCTokenDelegate(this.OnToken),
    OnUser = new StovePCUserDelegate(this.OnUser)
};

sdkResult = StovePC.Initialize(config, callback);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

주의사항

PCSDK 로그경로는 절대적경로로 설정해야 합니다. ex) C:\Program Files\{Your Game Folder}\Logs 마지막에 "\"는 추가하지 않습니다. PCSDK 에서 "StovePCSDK.log" 파일명을 자동으로 추가합니다.
만약 "" 빈문자열로 경로를 설정하게 되면 PCSDK는 자동적으로 게임실행파일 폴더 또는 PCSDK DLL 이 위치한 폴더의 경로로 로그가 생성됩니다.

YOUR_APP_KEY, YOUR_SECRET_KEY, YOUR_GAME_ID는 사전에 발급 받은 데이터로 변경해야 됩니다.
스토브 런처에 로그인 하지 않은 상태로 StovePC.Initialize 함수를 호출하면 에러가 발생합니다.

StovePC.Initialize 함수 호출이 정상적으로 완료되었을 때의 콜백을 작성합니다.
아래 코드 조각을 OnInitializationComplete 메서드에 작성합니다.

sb.AppendLine("OnInitializationComplete");
sb.AppendFormat(" - nothing");
1
2

# SDK 종료

스토브 서비스 사용이 끝난 후 사용중인 리소스를 정리하려면 StovePC.Uninitialize 메서드를 호출합니다.
아래 코드 조각을 ButtonUninitialize_Click 메서드에 작성합니다.

sdkResult = StovePC.Uninitialize();
1

# 사용자 정보 얻기

로그인한 사용자 정보를 얻어 오려면 StovePC.GetUser 메서드를 호출합니다.
아래 코드 조각을 ButtonGetUser_Click 메서드에 작성합니다.

sdkResult = StovePC.GetUser();
1

GetUser함수 호출이 정상적으로 완료되었을 때의 콜백 함수를 작성합니다. 아래 코드 조각을 OnUser 메서드에 작성합니다.

sb.AppendLine("OnUser");
sb.AppendFormat(" - user.MemberNo : {0}" + Environment.NewLine, user.MemberNo.ToString());
sb.AppendFormat(" - user.Nickname : {0}" + Environment.NewLine, user.Nickname);
sb.AppendFormat(" - user.GameUserId : {0}", user.GameUserId);
1
2
3
4

# 토큰 정보 얻기

로그인한 사용자의 토큰 정보를 얻어 오려면 StovePC.GetToken 메서드를 호출합니다.
아래 코드 조각을 ButtonGetToken_Click 메서드에 작성합니다.

sdkResult = StovePC.GetToken();
1

confirm 토큰이란? STOVE 런처에 로그인된 사용자의 엑세스토큰(Access Token)으로 게임서버가 이 엑세스토큰을 스토브 인증서버로 전달해서 로그인한 사용자의 유효성 검증을 수행할 수 있습니다. 엑세스토큰에 대한 상세한 설명은 store.support@smilegate.com 로 기술지원을 받으시길 바랍니다

GetToken 함수 호출이 정상적으로 완료되었을 때의 콜백 함수를 작성합니다. 아래 코드 조각을 OnToken 메서드에 작성합니다.

sb.AppendLine("OnToken");
sb.AppendFormat(" - token.AccessToken : {0}", token.AccessToken);
1
2

# 빌드 및 실행

작성한 스크립트를 저장합니다.
Unity Editor에서 File > Build & Run 메뉴를 클릭합니다.

Figure1

Sereen resolution 필드값을 1024 x 768 항목으로 설정하고 Windowed 체크박스를 체크합니다.
Play! 버튼을 클릭합니다.

confirm 다른 해상도로 설정할 경우 일부 버튼이 정상적으로 출력되지 않을 수 있습니다.

아래 그림과 같이 RunCallback을 먼저 체크하고 “Load Config”버튼부터 차례로 클릭해서 결과를 확인해 봅니다.

Figure1

축하합니다!
HelloStove 따라하기를 성공적으로 완료했습니다.

Last Updated: 2023. 11. 22. 오후 1:25:27