# 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 런처 설정

# 기존 클라이언트(런처 v2)

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

  1. STOVE 런처가 설치된 폴더에 PolicyConfig.json 파일을 생성
  • 기본 설치위치 : C:\Program Files (x86)\Smilegate\STOVE
  1. PolicyConfig.json 파일에 아래 내용을 입력하고 STOVE Studio 프로젝트 등록시에 생성
  • SDK 연동 중에는 STOVE 런처를 실행해야 합니다.

    아래와 같은 구조로 PolicyConfig.json을 생성한 후 C:\Program Files (x86)\Smilegate\STOVE 폴더에 덮어씁니다. **STOVE Studio (opens new window)의 프로젝트 관리 메뉴에서 Game ID를 확인한 후 교체합니다.

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

"id_hellostove"는 STOVE Studio에 등록한 gameID로 변경

  1. STOVE 런처를 실행하고 STOVE Studio에 가입한 스토브ID로 로그인합니다.

# New 클라이언트(런처 v3)

# A. 사전준비

빌드테스트를 진행하기 전에 미리 준비해야 되는 내용을 설명합니다.

# 1. STOVE Studio 가입 및 프로젝트 등록

  • STOVE에 가입된 계정으로 스튜디오에 접속하여 스토어 개발자로 등록을 합니다.
  • 스튜디오 화면에서 "Studio에서 출시하기"메뉴를 통해 새 프로젝트를 등록합니다.
  • 새 프로젝트로 등록하면 프로젝트 화면에서 “게임ID”, "Application Key"값을 확인할 수 있고 PC SDK 연동 시에 필요한 프로젝트 정보를 획득하게 됩니다.

# 2. 게임빌드에 PC SDK 연동 완료

  • 게임빌드에 PC SDK가 연동되어 있어야 하며, SDK연동 시에 스튜디오의 프로젝트 정보(게임ID, Application Key)가 정확하게 포함되어 있어야 합니다.

프로젝트 정보를 정확하게 입력하지 않으면 빌드테스트가 진행되지 않습니다.

# 3. New 클라이언트 다운로드

# B. 개발자모드 활성화 하기

개발자모드 활성화는 New클라이언트가 로컬PC에서 실행되는 (PC SDK와 연동되어 있는)게임빌드를 인식할 수 있도록 하는 작업입니다.

# 1. 개발자모드 설정파일 생성

  • New 클라이언트의 개발자모드를 활성화하기 위해 설정파일은 policyconfig.json이름으로 생성해야 합니다. 파일명이 정확하지 않으면 New 클라이언트에서 설정파일을 인식하지 못합니다.
  • C:\Users\%username%\AppData\Local\STOVE\Config로 이동하고 policyconfig.json파일을 생성합니다.
경로 :  ...\AppData\Local\STOVE\Config\PolicyConfig.json
1

# 2. 설정내용 입력하기

New 클라이언트의 개발자모드를 활성화하기 위한 마지막 단계는 하단 박스와 같이 설정 내용을 작성해야 합니다.

경고

스토브 런처가 켜져 있으면 작성 후 꼭 스토브 런처를 재시작해야 합니다.

스튜디오에 등록된 게임ID를 dev_game_list안에 여러개 기입이 가능하고, 기입된 게임ID와 일치하는 게임빌드는 New 클라이언트와 개발자모드로 통신하며 로컬PC에서 빌드테스트가 가능하게 됩니다.

PolicyConfig.json
{
  "stove_launcher_policy_config":
  {
    "dev_game_list": [ "게임ID", "게임ID", .... ]
  }
}
1
2
3
4
5
6
7

New 클라이언트의 개발자모드가 활성화되지 않는 경우, policyconfig.json파일의 위치가 올바른지 확인하고, policyconfig.json에 기입된 게임ID가 스튜디오의 등록된 게임ID하고 정확하게 일치하는지 체크해주시기 바랍니다.

# C. 빌드테스트 진행하기

앞서 설명한 과정을 통해 New 클라이언트의 개발자모드를 활성화 시켰기 때문에 어려운 과정은 모두 완료되었고, New 클라이언트가 실행 중인 상태에서 PC SDK가 연동된 게임빌드를 실행만 하면 빌드테스트가 가능해집니다.

빌드테스트는 exe파일을 직접 실행하거나, 개발툴(Visual Studio, Unity, Unreal 등)의 디버그 모드에서 모두 동작하기 때문에 편리하게 빌드테스트를 진행하여 디버깅 과정을 수행할 수 있습니다.

IAP SDK와 연동된 게임빌드에서 테스트 결제가 필요한 경우 위 방법으로는 지원하지 않습니다. 테스트 결제를 수행하기 위해서는 반드시 빌드를 스튜디오에 업로드하고 New 클라이언트의 스튜디오 테스트 메뉴로 진입한 뒤에 테스트 결제를 시도해주시기 바랍니다.

(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: 2024. 9. 26. 오후 2:55:28