From 2790deb699cf69634825d5f68a53a785dc5638e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=B0=95=EC=9D=80=EC=9A=B0/=EA=B2=8C=EC=9E=84=ED=94=8C?= =?UTF-8?q?=EB=9E=AB=ED=8F=BC=ED=81=B4=EB=9D=BC=ED=8C=80/NE?= Date: Fri, 6 Sep 2024 18:06:47 +0900 Subject: [PATCH 1/4] =?UTF-8?q?Android=209=EC=9B=94=20=EB=B9=84=EC=A0=95?= =?UTF-8?q?=EA=B8=B0=EB=B0=B0=ED=8F=AC=20release=20note=20=EC=9E=91?= =?UTF-8?q?=EC=84=B1,=20aos-started=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- en/release-notes-android.md | 8 ++++++++ ja/release-notes-android.md | 8 ++++++++ ko/aos-started.md | 2 +- ko/release-notes-android.md | 8 ++++++++ zh/release-notes-android.md | 8 ++++++++ 5 files changed, 33 insertions(+), 1 deletion(-) diff --git a/en/release-notes-android.md b/en/release-notes-android.md index 30d17817..4d9f733f 100644 --- a/en/release-notes-android.md +++ b/en/release-notes-android.md @@ -1,5 +1,13 @@ ## Game > Gamebase > Release Notes > Android +### 2.66.3 (2024. 09. 10.) +[SDK Download](https://static.toastoven.net/toastcloud/sdk_download/gamebase/v2.66.3/GamebaseSDK-Android.zip) + +#### 기능 개선/변경 +* 외부 SDK 업데이트: NHN Cloud SDK(1.9.2) + * Android 13 이상 특정 디바이스에서 간헐적으로 Native Crash 로그가 리포팅되지 않는 문제가 수정되었습니다. + * Amazon 결제 재처리가 개선되었습니다. + ### 2.66.2 (2024. 08. 27.) [SDK Download](https://static.toastoven.net/toastcloud/sdk_download/gamebase/v2.66.2/GamebaseSDK-Android.zip) diff --git a/ja/release-notes-android.md b/ja/release-notes-android.md index 9c98261a..e63552b8 100644 --- a/ja/release-notes-android.md +++ b/ja/release-notes-android.md @@ -1,5 +1,13 @@ ## Game > Gamebase > リリースノート > Android +### 2.66.3 (2024. 09. 10.) +[SDK Download](https://static.toastoven.net/toastcloud/sdk_download/gamebase/v2.66.3/GamebaseSDK-Android.zip) + +#### 기능 개선/변경 +* 외부 SDK 업데이트: NHN Cloud SDK(1.9.2) + * Android 13 이상 특정 디바이스에서 간헐적으로 Native Crash 로그가 리포팅되지 않는 문제가 수정되었습니다. + * Amazon 결제 재처리가 개선되었습니다. + ### 2.66.2 (2024. 08. 27.) [SDK Download](https://static.toastoven.net/toastcloud/sdk_download/gamebase/v2.66.2/GamebaseSDK-Android.zip) diff --git a/ko/aos-started.md b/ko/aos-started.md index fe318b40..1a99282f 100644 --- a/ko/aos-started.md +++ b/ko/aos-started.md @@ -14,7 +14,7 @@ Android에서 Gamebase를 사용하기 위한 시스템 환경은 다음과 같 | Gamebase SDK | Gamebase Adapter | External SDK | 용도 | minSdkVersion | | --- | --- | --- | --- | --- | -| Gamebase | gamebase-sdk | nhncloud-core-1.9.1
nhncloud-common
nhncloud-crash-reporter-ndk
nhncloud-logger
gson-2.8.9
okhttp-3.12.13
kotlin-stdlib-1.8.0
kotlin-stdlib-common
kotlin-stdlib-jdk7
kotlin-stdlib-jdk8
kotlin-android-extensions-runtime
kotlinx-coroutines-core-1.6.4
kotlinx-coroutines-android
kotlinx-coroutines-core-jvm | Gamebase의 인터페이스 및 핵심 로직을 포함 | API 19(Kitkat, OS 4.4) | +| Gamebase | gamebase-sdk | nhncloud-core-1.9.2
nhncloud-common
nhncloud-crash-reporter-ndk
nhncloud-logger
gson-2.8.9
okhttp-3.12.13
kotlin-stdlib-1.8.0
kotlin-stdlib-common
kotlin-stdlib-jdk7
kotlin-stdlib-jdk8
kotlin-android-extensions-runtime
kotlinx-coroutines-core-1.6.4
kotlinx-coroutines-android
kotlinx-coroutines-core-jvm | Gamebase의 인터페이스 및 핵심 로직을 포함 | API 19(Kitkat, OS 4.4) | | Gamebase Auth Adapters | gamebase-adapter-auth-appleid | - | Sign In With Apple 로그인을 지원 | - | | | gamebase-adapter-auth-facebook | facebook-login-16.1.2 | Facebook 로그인을 지원 | - | | | gamebase-adapter-auth-google | play-services-auth-20.3.0 | Google 로그인을 지원 | - | diff --git a/ko/release-notes-android.md b/ko/release-notes-android.md index 8179096c..6f1dbcc6 100644 --- a/ko/release-notes-android.md +++ b/ko/release-notes-android.md @@ -1,5 +1,13 @@ ## Game > Gamebase > 릴리스 노트 > Android +### 2.66.3 (2024. 09. 10.) +[SDK Download](https://static.toastoven.net/toastcloud/sdk_download/gamebase/v2.66.3/GamebaseSDK-Android.zip) + +#### 기능 개선/변경 +* 외부 SDK 업데이트: NHN Cloud SDK(1.9.2) + * Android 13 이상 특정 디바이스에서 간헐적으로 Native Crash 로그가 리포팅되지 않는 문제가 수정되었습니다. + * Amazon 결제 재처리가 개선되었습니다. + ### 2.66.2 (2024. 08. 27.) [SDK Download](https://static.toastoven.net/toastcloud/sdk_download/gamebase/v2.66.2/GamebaseSDK-Android.zip) diff --git a/zh/release-notes-android.md b/zh/release-notes-android.md index 2fb29e03..57a9aad4 100644 --- a/zh/release-notes-android.md +++ b/zh/release-notes-android.md @@ -1,5 +1,13 @@ ## Game > Gamebase > Release Notes > Android +### 2.66.3 (2024. 09. 10.) +[SDK Download](https://static.toastoven.net/toastcloud/sdk_download/gamebase/v2.66.3/GamebaseSDK-Android.zip) + +#### 기능 개선/변경 +* 외부 SDK 업데이트: NHN Cloud SDK(1.9.2) + * Android 13 이상 특정 디바이스에서 간헐적으로 Native Crash 로그가 리포팅되지 않는 문제가 수정되었습니다. + * Amazon 결제 재처리가 개선되었습니다. + ### 2.66.2 (2024. 08. 27.) [SDK Download](https://static.toastoven.net/toastcloud/sdk_download/gamebase/v2.66.2/GamebaseSDK-Android.zip) From 0bfda7ced3ddb59a1bcd3c28ec05caf360d82467 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EB=AF=BC=EC=84=9D?= Date: Mon, 9 Sep 2024 09:32:34 +0900 Subject: [PATCH 2/4] =?UTF-8?q?Unity=209=EC=9B=94=20=EB=B9=84=20=EC=A0=95?= =?UTF-8?q?=EA=B8=B0=20=EB=B0=B0=ED=8F=AC:=20=EB=A6=B4=EB=A6=AC=EC=8A=A4?= =?UTF-8?q?=20=EB=85=B8=ED=8A=B8,=20=EC=97=85=EA=B7=B8=EB=A0=88=EC=9D=B4?= =?UTF-8?q?=EB=93=9C=20=EA=B0=80=EC=9D=B4=EB=93=9C,=20=EC=8B=9C=EC=9E=91?= =?UTF-8?q?=ED=95=98=EA=B8=B0=20=ED=8E=98=EC=9D=B4=EC=A7=80=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 최소 지원 버전이 218.4.0에서 2020.3.0으로 변경되었습니다. --- en/release-notes-unity.md | 6 ++++++ en/unity-started.md | 2 +- ja/release-notes-unity.md | 6 ++++++ ja/unity-started.md | 2 +- ko/release-notes-unity.md | 6 ++++++ ko/unity-started.md | 2 +- ko/upgrade-guide.md | 9 +++++++++ zh/release-notes-unity.md | 6 ++++++ zh/unity-started.md | 2 +- 9 files changed, 37 insertions(+), 4 deletions(-) diff --git a/en/release-notes-unity.md b/en/release-notes-unity.md index 40f085f9..198b9c75 100644 --- a/en/release-notes-unity.md +++ b/en/release-notes-unity.md @@ -1,5 +1,11 @@ ## Game > Gamebase > Release Notes > Unity +### 2.66.3 (2024. 09. 10.) +[SDK Download](https://static.toastoven.net/toastcloud/sdk_download/gamebase/v2.66.3/GamebaseSDK-Unity.zip) + +#### 기능 개선/변경 +* Unity 최소지원 버전 변경: 2020.3.0f1 + ### 2.66.3 (2024. 09. 05.) [SDK Download](https://static.toastoven.net/toastcloud/sdk_download/gamebase/v2.66.3/GamebaseSDK-Unity.zip) diff --git a/en/unity-started.md b/en/unity-started.md index bde730a2..c43f4281 100644 --- a/en/unity-started.md +++ b/en/unity-started.md @@ -9,7 +9,7 @@ This guide describes the environments and initial setting of Gamebase Unity SDK. > > Supported Unity versions > -> * 2018.4.0 ~ 6000.0.17 +> * 2020.3.0 ~ 6000.0.17 #### Android > [Caution] diff --git a/ja/release-notes-unity.md b/ja/release-notes-unity.md index d9f34c6d..8cf90e3f 100644 --- a/ja/release-notes-unity.md +++ b/ja/release-notes-unity.md @@ -1,5 +1,11 @@ ## Game > Gamebase > リリースノート > Unity +### 2.66.3 (2024. 09. 10.) +[SDK Download](https://static.toastoven.net/toastcloud/sdk_download/gamebase/v2.66.3/GamebaseSDK-Unity.zip) + +#### 기능 개선/변경 +* Unity 최소지원 버전 변경: 2020.3.0f1 + ### 2.66.3 (2024. 09. 05.) [SDK Download](https://static.toastoven.net/toastcloud/sdk_download/gamebase/v2.66.3/GamebaseSDK-Unity.zip) diff --git a/ja/unity-started.md b/ja/unity-started.md index e9a4a9dc..5d82ac57 100644 --- a/ja/unity-started.md +++ b/ja/unity-started.md @@ -9,7 +9,7 @@ Gamebase Unity SDKの使用環境及び初期設定について説明します > > Unity対応バージョン > -> * 2018.4.0~6000.0.17 +> * 2020.3.0 ~ 6000.0.17 #### Android > [注意] diff --git a/ko/release-notes-unity.md b/ko/release-notes-unity.md index 06ee0185..3611e06d 100644 --- a/ko/release-notes-unity.md +++ b/ko/release-notes-unity.md @@ -1,5 +1,11 @@ ## Game > Gamebase > 릴리스 노트 > Unity +### 2.66.3 (2024. 09. 10.) +[SDK Download](https://static.toastoven.net/toastcloud/sdk_download/gamebase/v2.66.3/GamebaseSDK-Unity.zip) + +#### 기능 개선/변경 +* Unity 최소지원 버전 변경: 2020.3.0f1 + ### 2.66.3 (2024. 09. 05.) [SDK Download](https://static.toastoven.net/toastcloud/sdk_download/gamebase/v2.66.3/GamebaseSDK-Unity.zip) diff --git a/ko/unity-started.md b/ko/unity-started.md index 5d441ff3..fd501afb 100644 --- a/ko/unity-started.md +++ b/ko/unity-started.md @@ -9,7 +9,7 @@ Gamebase Unity SDK 사용 환경 및 초기 설정에 대해 설명합니다. > > Unity 지원 버전 > -> * 2018.4.0 ~ 6000.0.17 +> * 2020.3.0 ~ 6000.0.17 #### Android > [주의] diff --git a/ko/upgrade-guide.md b/ko/upgrade-guide.md index 6f135e69..03782ca0 100644 --- a/ko/upgrade-guide.md +++ b/ko/upgrade-guide.md @@ -1,5 +1,14 @@ ## Game > Gamebase > Upgrade Guide +## 2.66.3 + +### Unity + +#### Changed Minimum Support Version + +* 최소 지원 Unity 버전이 2018.4.0 에서 2020.3.0 으로 변경되었습니다. +* 하위 버전의 Unity 지원이 필요하다면 [고객 센터](https://toast.com/support/inquiry)로 문의해 주시기 바랍니다. + ## 2.66.2 ### iOS diff --git a/zh/release-notes-unity.md b/zh/release-notes-unity.md index f20a6338..bee2640d 100644 --- a/zh/release-notes-unity.md +++ b/zh/release-notes-unity.md @@ -1,5 +1,11 @@ ## Game > Gamebase > Release Notes > Unity +### 2.66.3 (2024. 09. 10.) +[SDK Download](https://static.toastoven.net/toastcloud/sdk_download/gamebase/v2.66.3/GamebaseSDK-Unity.zip) + +#### 기능 개선/변경 +* Unity 최소지원 버전 변경: 2020.3.0f1 + ### 2.66.3 (2024. 09. 05.) [SDK Download](https://static.toastoven.net/toastcloud/sdk_download/gamebase/v2.66.3/GamebaseSDK-Unity.zip) diff --git a/zh/unity-started.md b/zh/unity-started.md index bde730a2..c43f4281 100644 --- a/zh/unity-started.md +++ b/zh/unity-started.md @@ -9,7 +9,7 @@ This guide describes the environments and initial setting of Gamebase Unity SDK. > > Supported Unity versions > -> * 2018.4.0 ~ 6000.0.17 +> * 2020.3.0 ~ 6000.0.17 #### Android > [Caution] From 54daabc7d6fcb11b147454d0025bfffec1947c19 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=B0=95=ED=98=9C=EB=A6=BC/=EA=B2=8C=EC=9E=84=ED=94=8C?= =?UTF-8?q?=EB=9E=AB=ED=8F=BC=ED=81=B4=EB=9D=BC=ED=8C=80/NE?= Date: Tue, 10 Sep 2024 07:05:09 +0900 Subject: [PATCH 3/4] =?UTF-8?q?9=EC=9B=94=20=EB=B9=84=EC=A0=95=EA=B8=B0=20?= =?UTF-8?q?=EB=B0=B0=ED=8F=AC=20Unreal=20=EA=B0=80=EC=9D=B4=EB=93=9C=20?= =?UTF-8?q?=EC=9E=91=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- en/release-notes-unreal.md | 10 ++++++++ ja/release-notes-unreal.md | 10 ++++++++ ko/release-notes-unreal.md | 16 ++++++++++--- ko/unreal-authentication.md | 4 ++-- ko/unreal-initialization.md | 46 ++++++++++++++++++------------------- zh/release-notes-unreal.md | 10 ++++++++ 6 files changed, 67 insertions(+), 29 deletions(-) diff --git a/en/release-notes-unreal.md b/en/release-notes-unreal.md index 7db90368..17ca9334 100644 --- a/en/release-notes-unreal.md +++ b/en/release-notes-unreal.md @@ -1,5 +1,15 @@ ## Game > Gamebase > Release Notes > Unreal +### 2.66.1 (2024. 09. 10.) +[SDK Download](https://static.toastoven.net/toastcloud/sdk_download/gamebase/v2.66.1/GamebaseSDK-Unreal.zip) + +#### 기능 개선 +* 내부 로직을 개선했습니다. + +#### 플랫폼별 변경 사항 +* [Gamebase Android SDK 2.66.3](./release-notes-android/#2663-2024-09-10) +* [Gamebase iOS SDK 2.66.2](./release-notes-ios/#2662-2024-08-27) + ### 2.66.0 (2024. 08. 27.) [SDK Download](https://static.toastoven.net/toastcloud/sdk_download/gamebase/v2.66.0/GamebaseSDK-Unreal.zip) diff --git a/ja/release-notes-unreal.md b/ja/release-notes-unreal.md index 6d61885d..c5722db3 100644 --- a/ja/release-notes-unreal.md +++ b/ja/release-notes-unreal.md @@ -1,5 +1,15 @@ ## Game > Gamebase > リリースノート > Unreal +### 2.66.1 (2024. 09. 10.) +[SDK Download](https://static.toastoven.net/toastcloud/sdk_download/gamebase/v2.66.1/GamebaseSDK-Unreal.zip) + +#### 기능 개선 +* 내부 로직을 개선했습니다. + +#### 플랫폼별 변경 사항 +* [Gamebase Android SDK 2.66.3](./release-notes-android/#2663-2024-09-10) +* [Gamebase iOS SDK 2.66.2](./release-notes-ios/#2662-2024-08-27) + ### 2.66.0 (2024. 08. 27.) [SDK Download](https://static.toastoven.net/toastcloud/sdk_download/gamebase/v2.66.0/GamebaseSDK-Unreal.zip) diff --git a/ko/release-notes-unreal.md b/ko/release-notes-unreal.md index 5795f356..81a55f5c 100644 --- a/ko/release-notes-unreal.md +++ b/ko/release-notes-unreal.md @@ -1,5 +1,15 @@ ## Game > Gamebase > 릴리스 노트 > Unreal +### 2.66.1 (2024. 09. 10.) +[SDK Download](https://static.toastoven.net/toastcloud/sdk_download/gamebase/v2.66.1/GamebaseSDK-Unreal.zip) + +#### 기능 개선 +* 내부 로직을 개선했습니다. + +#### 플랫폼별 변경 사항 +* [Gamebase Android SDK 2.66.3](./release-notes-android/#2663-2024-09-10) +* [Gamebase iOS SDK 2.66.2](./release-notes-ios/#2662-2024-08-27) + ### 2.66.0 (2024. 08. 27.) [SDK Download](https://static.toastoven.net/toastcloud/sdk_download/gamebase/v2.66.0/GamebaseSDK-Unreal.zip) @@ -177,10 +187,10 @@ #### 기능 개선/변경 * 킥아웃 팝업 창 표시 여부는 Gamebase 콘솔에서 킥아웃 등록 시 설정할 수 있으므로 다음 필드는 더 이상 사용하지 않습니다 - * **FGamebaseConfiguration.enableKickoutPopup** + * **FGamebaseConfiguration.bEnableKickoutPopup** * FGamebaseConfiguration 내 일부 필드에 기본값이 추가되었습니다. - * enableLaunchingStatusPopup의 기본값이 true로 설정되었습니다. - * enableBanPopup의 기본값이 true로 설정되었습니다. + * bEnableLaunchingStatusPopup의 기본값이 true로 설정되었습니다. + * bEnableBanPopup의 기본값이 true로 설정되었습니다. * 웹뷰에서 고정 폰트 사이즈 사용 여부를 설정하는 필드는 더 이상 사용되지 않습니다. * **FGamebaseWebViewConfiguration.enableFixedFontSize** * FGamebaseWebViewConfiguratio 내 일부 필드에 기본값이 추가되었습니다. diff --git a/ko/unreal-authentication.md b/ko/unreal-authentication.md index f5a8e654..737fa54a 100644 --- a/ko/unreal-authentication.md +++ b/ko/unreal-authentication.md @@ -38,7 +38,7 @@ Gamebase에서는 게스트 로그인을 기본으로 지원합니다.
* 이용 정지 게임 유저 * 오류 코드가 **BANNED_MEMBER(7)** 인 경우, 이용 정지 게임 유저이므로 인증에 실패한 것입니다. * **FGamebaseBanInfo::From API**로 제재 정보를 확인하여 게임 유저에게 게임을 플레이할 수 없는 이유를 알려주시기 바랍니다. - * Gamebase 초기화 시 **FGamebaseConfiguration.enablePopup** 및 **FGamebaseConfiguration.enableBanPopup**값을 true로 한다면 Gamebase가 이용 정지에 관한 팝업 창을 자동으로 띄웁니다. + * Gamebase 초기화 시 **FGamebaseConfiguration.bEnablePopup** 및 **FGamebaseConfiguration.bEnableBanPopup**값을 true로 한다면 Gamebase가 이용 정지에 관한 팝업 창을 자동으로 띄웁니다. * 그 외 오류 * 이전 로그인 유형으로 인증에 실패했습니다. **'2. 지정된 IdP로 인증'**을 진행합니다. @@ -60,7 +60,7 @@ Gamebase에서는 게스트 로그인을 기본으로 지원합니다.
* 이용 정지 게임 유저 * 오류 코드가 **BANNED_MEMBER(7)**인 경우, 이용 정지 게임 유저이므로 인증에 실패한 것입니다. * **FGamebaseBanInfo::From API**로 제재 정보를 확인하여 게임 유저에게 게임을 플레이할 수 없는 이유를 알려 주시기 바랍니다. - * Gamebase 초기화 시 **FGamebaseConfiguration.enablePopup** 및 **FGamebaseConfiguration.enableBanPopup**값을 **true**로 지정하면 Gamebase가 이용 정지에 관한 팝업 창을 자동으로 표시합니다. + * Gamebase 초기화 시 **FGamebaseConfiguration.bEnablePopup** 및 **FGamebaseConfiguration.bEnableBanPopup**값을 **true**로 지정하면 Gamebase가 이용 정지에 관한 팝업 창을 자동으로 표시합니다. * 그 외의 오류 * 오류가 발생했다는 것을 게임 유저에게 알리고, 게임 유저가 인증 IdP 유형을 선택할 수 있는 상태(주로 타이틀 화면 또는 로그인 화면)로 되돌아갑니다. diff --git a/ko/unreal-initialization.md b/ko/unreal-initialization.md index 3082a070..bbdabffc 100644 --- a/ko/unreal-initialization.md +++ b/ko/unreal-initialization.md @@ -8,7 +8,7 @@ Gamebase Unreal SDK를 사용하려면 먼저 초기화를 진행해야 합니 Gamebase API를 사용하기 위해서는 다음의 헤더 파일을 가져옵니다. ```cpp -#include "Gamebase.h" +#include "GamebaseSubsystem.h" ``` ### FGamebaseConfiguration @@ -17,45 +17,43 @@ Gamebase API를 사용하기 위해서는 다음의 헤더 파일을 가져옵 | Setting value | Supported Platform | Mandatory(M) / Optional(O) | | -------------------------- | ------------------ | -------------------------- | -| AppID | ALL | M | +| AppID | ALL | M | | AppVersion | ALL | M | | StoreCode | ALL | M | -| DisplayLanguageCode | ALL | O | | bEnablePopup | ALL | O | | bEnableLaunchingStatusPopup | ALL | O | | bEnableBanPopup | ALL | O | -#### 1. App ID +#### 1. AppID Gamebase Console에 등록된 프로젝트 ID입니다. [Game > Gamebase > 콘솔 사용 가이드 > 앱 > App](./oper-app/#app) -#### 2. appVersion +#### 2. AppVersion Gamebase Console에 등록한 클라이언트 버전입니다. [Game > Gamebase > 콘솔 사용 가이드 > 앱 > Client](./oper-app/#client) -#### 3. storeCode +#### 3. StoreCode NHN Cloud 통합 인앱 결제 서비스인 IAP(In-App Purchase)를 초기화하기 위해 필요한 스토어 정보입니다. -| Store | Code | Description | +| Store | Code | GamebaseStoreCode | Description | | ----------- | ---- | ------------ | -| App Store | AS | iOS에 한함 | -| Google Play | GG | Android에 한함 | -| One Store | ONESTORE | Android에 한함 | -| Galaxy Store | GALAXY | Android에 한함 | - -#### 4. displayLanguageCode - -Gamebase에서 제공하는 UI 및 SystemDialog에 표시되는 언어를 단말기에 설정된 언어가 아닌 다른 언어로 변경할 수 있습니다. - -[Game > Gamebase > Unreal SDK 사용 가이드 > ETC > Additional Features > Display Language](./unreal-etc/#display-language) - -#### 5. enablePopup +| App Store | AS | GamebaseStoreCode::AppStore | iOS에 한함 | +| Google Play | GG | GamebaseStoreCode::Google | Android에 한함 | +| One Store | ONESTORE | GamebaseStoreCode::OneStore | Android에 한함 | +| Galaxy Store | GALAXY | GamebaseStoreCode::Galaxy | Android에 한함 | +| Amazon Appstore | AMAZON | GamebaseStoreCode::Amazon | Android에 한함 | +| Huawei AppGallery | HUAWEI | GamebaseStoreCode::Huawei | Android에 한함 | +| MyCard | MYCARD | GamebaseStoreCode::MyCard | Android에 한함 | +| Windows | WIN | GamebaseStoreCode::Windows | Windows에 한함
(Store 미사용 시) | +| Epic Store | EPIC | GamebaseStoreCode::Epic | Windows에 한함 | + +#### 4. bEnablePopup 시스템 점검, 이용 제재(ban) 등 게임 유저가 게임을 플레이할 수 없는 상황에서 팝업 창 등으로 사유를 표시해야 할 때가 있습니다. Gamebase에서 제공하는 기본 팝업 창을 사용할 것인지에 대한 설정입니다. @@ -64,14 +62,14 @@ Gamebase에서 제공하는 기본 팝업 창을 사용할 것인지에 대한 * false: Gamebase에서 제공하는 모든 팝업 창이 노출되지 않습니다. * 기본값: false -#### 6. enableLaunchingStatusPopup +#### 5. bEnableLaunchingStatusPopup LaunchingStatus가 게임을 할 수 없는 상태일 경우, Gamebase에서 제공하는 기본 팝업 창을 사용할 것인지에 대한 설정입니다. LaunchingStatus는 아래 Launching 절 아래 State, Code 부분을 참고하십시오. * 기본값: true -#### 7. enableBanPopup +#### 6. bEnableBanPopup 로그인 시 해당 게임 유저가 이용 정지 상태인 경우, Gamebase에서 제공하는 기본 팝업 창을 사용할 것인지에 대한 설정입니다. @@ -100,16 +98,16 @@ Supported Platforms UNREAL_WINDOWS ```cpp -void SetDebugMode(bool isDebugMode); +void SetDebugMode(bool bIsDebugMode); ``` **Example** ```cpp -void USample::SetDebugMode(bool isDebugMode) +void USample::SetDebugMode(bool bIsDebugMode) { UGamebaseSubsystem* Subsystem = UGameInstance::GetSubsystem(GetGameInstance()); - Subsystem->SetDebugMode(isDebugMode); + Subsystem->SetDebugMode(bIsDebugMode); } ``` diff --git a/zh/release-notes-unreal.md b/zh/release-notes-unreal.md index 7db90368..17ca9334 100644 --- a/zh/release-notes-unreal.md +++ b/zh/release-notes-unreal.md @@ -1,5 +1,15 @@ ## Game > Gamebase > Release Notes > Unreal +### 2.66.1 (2024. 09. 10.) +[SDK Download](https://static.toastoven.net/toastcloud/sdk_download/gamebase/v2.66.1/GamebaseSDK-Unreal.zip) + +#### 기능 개선 +* 내부 로직을 개선했습니다. + +#### 플랫폼별 변경 사항 +* [Gamebase Android SDK 2.66.3](./release-notes-android/#2663-2024-09-10) +* [Gamebase iOS SDK 2.66.2](./release-notes-ios/#2662-2024-08-27) + ### 2.66.0 (2024. 08. 27.) [SDK Download](https://static.toastoven.net/toastcloud/sdk_download/gamebase/v2.66.0/GamebaseSDK-Unreal.zip) From 03b3c9712224d8759b260b5eda1dfce8b1cbfc3b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=B0=95=ED=98=9C=EB=A6=BC/=EA=B2=8C=EC=9E=84=ED=94=8C?= =?UTF-8?q?=EB=9E=AB=ED=8F=BC=ED=81=B4=EB=9D=BC=ED=8C=80/NE?= Date: Tue, 10 Sep 2024 14:34:19 +0900 Subject: [PATCH 4/4] =?UTF-8?q?9=EC=9B=94=20=EB=B9=84=EC=A0=95=EA=B8=B0=20?= =?UTF-8?q?=EB=B0=B0=ED=8F=AC=20Unreal=20=EA=B0=80=EC=9D=B4=EB=93=9C=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ko/unreal-authentication.md | 208 ++++++++++++++++++------------------ ko/unreal-etc.md | 26 ++--- ko/unreal-initialization.md | 3 +- ko/unreal-purchase.md | 4 +- ko/unreal-ui.md | 18 ++-- 5 files changed, 130 insertions(+), 129 deletions(-) diff --git a/ko/unreal-authentication.md b/ko/unreal-authentication.md index 737fa54a..42222ec4 100644 --- a/ko/unreal-authentication.md +++ b/ko/unreal-authentication.md @@ -46,7 +46,7 @@ Gamebase에서는 게스트 로그인을 기본으로 지원합니다.
* IdP 유형을 직접 지정하여 인증을 시도합니다. * 인증 가능한 유형은 **GamebaseAuthProvider** 클래스에 선언돼 있습니다. -* **Login(providerName, callback) API**를 호출합니다. +* **Login(ProviderName, callback) API**를 호출합니다. #### 2-1. 인증에 성공한 경우 @@ -56,7 +56,7 @@ Gamebase에서는 게스트 로그인을 기본으로 지원합니다.
#### 2-2. 인증에 실패한 경우 * 네트워크 오류 - * 오류 코드가 **SOCKET_ERROR(110)** 또는 **SOCKET_RESPONSE_TIMEOUT(101)**인 경우, 일시적인 네트워크 문제로 인증에 실패한 것이므로 **Login(providerName, callback) API**를 다시 호출하거나, 잠시 후 다시 시도합니다. + * 오류 코드가 **SOCKET_ERROR(110)** 또는 **SOCKET_RESPONSE_TIMEOUT(101)**인 경우, 일시적인 네트워크 문제로 인증에 실패한 것이므로 **Login(ProviderName, callback) API**를 다시 호출하거나, 잠시 후 다시 시도합니다. * 이용 정지 게임 유저 * 오류 코드가 **BANNED_MEMBER(7)**인 경우, 이용 정지 게임 유저이므로 인증에 실패한 것입니다. * **FGamebaseBanInfo::From API**로 제재 정보를 확인하여 게임 유저에게 게임을 플레이할 수 없는 이유를 알려 주시기 바랍니다. @@ -74,7 +74,7 @@ Gamebase에서는 게스트 로그인을 기본으로 지원합니다.
| keyname | a use | 값 종류 | | ---------------------------------------- | ---------------------------------------- | ---------------------------------------- | -| GamebaseAuthProviderCredential.SHOW_LOADING_ANIMATION | API 호출이 끝날 때까지 로딩 애니메이션을 표시
**Android에 한함** | **bool**
**default**: true | +| GamebaseAuthProviderCredential::ShowLoadingAnimation | API 호출이 끝날 때까지 로딩 애니메이션을 표시
**Android에 한함** | **bool**
**default**: true | **API** @@ -83,8 +83,8 @@ Gamebase에서는 게스트 로그인을 기본으로 지원합니다.
UNREAL_ANDROID ```cpp -void LoginForLastLoggedInProvider(const FGamebaseAuthTokenDelegate& onCallback); -void LoginForLastLoggedInProvider(const UGamebaseJsonObject& additionalInfo, const FGamebaseAuthTokenDelegate& onCallback); +void LoginForLastLoggedInProvider(const FGamebaseAuthTokenDelegate& Callback); +void LoginForLastLoggedInProvider(const UGamebaseJsonObject& AdditionalInfo, const FGamebaseAuthTokenDelegate& Callback); ``` **Example** @@ -107,10 +107,10 @@ void USample::LoginForLastLoggedInProvider() } else if (Error->Code == GamebaseErrorCode::BANNED_MEMBER) { - auto banInfo = FGamebaseBanInfo::From(Error); - if (banInfo.IsValid()) + auto BanInfo = FGamebaseBanInfo::From(Error); + if (BanInfo.IsValid()) { - UE_LOG(GamebaseTestResults, Display, TEXT("This user has been banned. Gamebase userId is %s"), *banInfo->UserId); + UE_LOG(GamebaseTestResults, Display, TEXT("This user has been banned. Gamebase userId is %s"), *BanInfo->UserId); } } else @@ -137,7 +137,7 @@ Gamebase는 게스트 로그인을 지원합니다. UNREAL_WINDOWS ```cpp -void Login(const FString& providerName, const FGamebaseAuthTokenDelegate& onCallback); +void Login(const FString& ProviderName, const FGamebaseAuthTokenDelegate& Callback); ``` **Example** @@ -162,10 +162,10 @@ void USample::Login() } else if (Error->Code == GamebaseErrorCode::BANNED_MEMBER) { - auto banInfo = FGamebaseBanInfo::From(Error); - if (banInfo.IsValid()) + auto BanInfo = FGamebaseBanInfo::From(Error); + if (BanInfo.IsValid()) { - UE_LOG(GamebaseTestResults, Display, TEXT("This user has been banned. Gamebase userId is %s"), *banInfo->userId); + UE_LOG(GamebaseTestResults, Display, TEXT("This user has been banned. Gamebase userId is %s"), *BanInfo->userId); } } } @@ -181,16 +181,16 @@ void USample::Login() > [참고] > > 로그인할 때 추가정보를 필요로 하는 IdP도 있습니다. -> 이러한 추가 정보들을 설정할 수 있게 void Login(const FString& providerName, const UGamebaseJsonObject& additionalInfo, const FGamebaseAuthTokenDelegate& onCallback) API를 제공합니다. ->additionalInfo 파라미터에 필수 정보들을 dictionary 형태로 입력하시면 됩니다. ->additionalInfo 값이 있을 경우에는 해당 값을 사용하고 null 일 경우에는 [NHN Cloud Console](./oper-app/#authentication-information)에 등록된 값을 사용합니다. +> 이러한 추가 정보들을 설정할 수 있게 void Login(const FString& ProviderName, const UGamebaseJsonObject& AdditionalInfo, const FGamebaseAuthTokenDelegate& Callback) API를 제공합니다. +>AdditionalInfo 파라미터에 필수 정보들을 dictionary 형태로 입력하시면 됩니다. +>AdditionalInfo 값이 있을 경우에는 해당 값을 사용하고 null 일 경우에는 [NHN Cloud Console](./oper-app/#authentication-information)에 등록된 값을 사용합니다. > [참고] > > LINE IdP는 Gamebase SDK 2.43.0부터 LINE 서비스 제공 지역을 설정할 수 있습니다. > 해당 지역은 AdditionalInfo에 설정할 수 있습니다. -* additionalInfo 파라미터 설정 방법 +* AdditionalInfo 파라미터 설정 방법 | keyname | a use | 값 종류 | | ---------------------------------------- | ---------------------------------------- | ---------------------------------------- | @@ -205,8 +205,8 @@ void USample::Login() UNREAL_WINDOWS ```cpp -void Login(const FString& providerName, const FGamebaseAuthTokenDelegate& onCallback); -void Login(const FString& providerName, const UGamebaseJsonObject& additionalInfo, const FGamebaseAuthTokenDelegate& onCallback); +void Login(const FString& ProviderName, const FGamebaseAuthTokenDelegate& Callback); +void Login(const FString& ProviderName, const UGamebaseJsonObject& AdditionalInfo, const FGamebaseAuthTokenDelegate& Callback); ``` **Example** @@ -231,10 +231,10 @@ void USample::Login() } else if (Error->Code == GamebaseErrorCode::BANNED_MEMBER) { - auto banInfo = FGamebaseBanInfo::From(Error); - if (banInfo.IsValid()) + auto BanInfo = FGamebaseBanInfo::From(Error); + if (BanInfo.IsValid()) { - UE_LOG(GamebaseTestResults, Display, TEXT("This user has been banned. Gamebase userId is %s"), *banInfo->UserId); + UE_LOG(GamebaseTestResults, Display, TEXT("This user has been banned. Gamebase userId is %s"), *BanInfo->UserId); } } } @@ -243,11 +243,11 @@ void USample::Login() void USample::LoginWithAdditionalInfo() { - UGamebaseJsonObject* additionalInfo = NewObject(); - additionalInfo->SetStringField(TEXT("Key"), TEXT("Value")); + UGamebaseJsonObject* AdditionalInfo = NewObject(); + AdditionalInfo->SetStringField(TEXT("Key"), TEXT("Value")); UGamebaseSubsystem* Subsystem = UGameInstance::GetSubsystem(GetGameInstance()); - Subsystem->Login(GamebaseAuthProvider::Facebook, *additionalInfo, FGamebaseAuthTokenDelegate::CreateLambda([=](const FGamebaseAuthToken* AuthToken, const FGamebaseError* Error) + Subsystem->Login(GamebaseAuthProvider::Facebook, *AdditionalInfo, FGamebaseAuthTokenDelegate::CreateLambda([=](const FGamebaseAuthToken* AuthToken, const FGamebaseError* Error) { if (Gamebase::IsSuccess(Error)) { @@ -296,7 +296,7 @@ IdP에서 제공하는 SDK를 사용해 게임에서 직접 인증한 후 발급 UNREAL_WINDOWS ```cpp -void Login(const UGamebaseJsonObject& credentialInfo, const FGamebaseAuthTokenDelegate& onCallback); +void Login(const UGamebaseJsonObject& CredentialInfo, const FGamebaseAuthTokenDelegate& Callback); ``` **Example** @@ -304,18 +304,18 @@ void Login(const UGamebaseJsonObject& credentialInfo, const FGamebaseAuthTokenDe ```cpp void USample::LoginWithCredential() { - UGamebaseJsonObject* credentialInfo = NewObject(); + UGamebaseJsonObject* CredentialInfo = NewObject(); // google - //credentialInfo->SetStringField(GamebaseAuthProviderCredential::ProviderName, GamebaseAuthProvider::Google); - //credentialInfo->SetStringField(GamebaseAuthProviderCredential::AuthorizationCode, TEXT("google auchorization code")); + //CredentialInfo->SetStringField(GamebaseAuthProviderCredential::ProviderName, GamebaseAuthProvider::Google); + //CredentialInfo->SetStringField(GamebaseAuthProviderCredential::AuthorizationCode, TEXT("google auchorization code")); // facebook - credentialInfo->SetStringField(GamebaseAuthProviderCredential::ProviderName, GamebaseAuthProvider::Facebook); - credentialInfo->SetStringField(GamebaseAuthProviderCredential::AccessToken, TEXT("facebook access token")); + CredentialInfo->SetStringField(GamebaseAuthProviderCredential::ProviderName, GamebaseAuthProvider::Facebook); + CredentialInfo->SetStringField(GamebaseAuthProviderCredential::AccessToken, TEXT("facebook access token")); UGamebaseSubsystem* Subsystem = UGameInstance::GetSubsystem(GetGameInstance()); - Subsystem->Login(*credentialInfo, FGamebaseAuthTokenDelegate::CreateLambda([=](const FGamebaseAuthToken* AuthToken, const FGamebaseError* Error) + Subsystem->Login(*CredentialInfo, FGamebaseAuthTokenDelegate::CreateLambda([=](const FGamebaseAuthToken* AuthToken, const FGamebaseError* Error) { if (Gamebase::IsSuccess(Error)) { @@ -344,7 +344,7 @@ void USample::LoginWithCredential() UNREAL_WINDOWS ```cpp -void Logout(const FGamebaseErrorDelegate& onCallback); +void Logout(const FGamebaseErrorDelegate& Callback); ``` **Example** @@ -392,7 +392,7 @@ void USample::Logout() UNREAL_WINDOWS ```cpp -void Withdraw(const FGamebaseErrorDelegate& onCallback); +void Withdraw(const FGamebaseErrorDelegate& Callback); ``` **Example** @@ -494,17 +494,17 @@ void USample::Withdraw() UNREAL_ANDROID ```cpp -void AddMapping(const FString& providerName, const FGamebaseAuthTokenDelegate& onCallback); -void AddMapping(const FString& providerName, const UGamebaseJsonObject& additionalInfo, const FGamebaseAuthTokenDelegate& onCallback) +void AddMapping(const FString& ProviderName, const FGamebaseAuthTokenDelegate& Callback); +void AddMapping(const FString& ProviderName, const UGamebaseJsonObject& AdditionalInfo, const FGamebaseAuthTokenDelegate& Callback) ``` **Example** ```cpp -void USample::AddMapping(const FString& providerName) +void USample::AddMapping(const FString& ProviderName) { UGamebaseSubsystem* Subsystem = UGameInstance::GetSubsystem(GetGameInstance()); - Subsystem->AddMapping(providerName, FGamebaseAuthTokenDelegate::CreateLambda([=](const FGamebaseAuthToken* AuthToken, const FGamebaseError* Error) + Subsystem->AddMapping(ProviderName, FGamebaseAuthTokenDelegate::CreateLambda([=](const FGamebaseAuthToken* AuthToken, const FGamebaseError* Error) { if (Gamebase::IsSuccess(Error)) { @@ -549,7 +549,7 @@ void USample::AddMapping(const FString& providerName) UNREAL_ANDROID ```cpp -void AddMapping(const UGamebaseJsonObject& credentialInfo, const FGamebaseAuthTokenDelegate& onCallback); +void AddMapping(const UGamebaseJsonObject& CredentialInfo, const FGamebaseAuthTokenDelegate& Callback); ``` **Example** @@ -557,18 +557,18 @@ void AddMapping(const UGamebaseJsonObject& credentialInfo, const FGamebaseAuthTo ```cpp void USample::AddMappingWithCredential() { - UGamebaseJsonObject* credentialInfo = NewObject(); + UGamebaseJsonObject* CredentialInfo = NewObject(); // google - //credentialInfo->SetStringField(GamebaseAuthProviderCredential::ProviderName, GamebaseAuthProvider::Google); - //credentialInfo->SetStringField(GamebaseAuthProviderCredential::AuthorizationCode, TEXT("google auchorization code")); + //CredentialInfo->SetStringField(GamebaseAuthProviderCredential::ProviderName, GamebaseAuthProvider::Google); + //CredentialInfo->SetStringField(GamebaseAuthProviderCredential::AuthorizationCode, TEXT("google auchorization code")); // facebook - credentialInfo->SetStringField(GamebaseAuthProviderCredential::ProviderName, GamebaseAuthProvider::Facebook); - credentialInfo->SetStringField(GamebaseAuthProviderCredential::AccessToken, TEXT("facebook access token")); + CredentialInfo->SetStringField(GamebaseAuthProviderCredential::ProviderName, GamebaseAuthProvider::Facebook); + CredentialInfo->SetStringField(GamebaseAuthProviderCredential::AccessToken, TEXT("facebook access token")); UGamebaseSubsystem* Subsystem = UGameInstance::GetSubsystem(GetGameInstance()); - Subsystem->AddMapping(*credentialInfo, FGamebaseAuthTokenDelegate::CreateLambda([=](const FGamebaseAuthToken* AuthToken, const FGamebaseError* Error) + Subsystem->AddMapping(*CredentialInfo, FGamebaseAuthTokenDelegate::CreateLambda([=](const FGamebaseAuthToken* AuthToken, const FGamebaseError* Error) { if (Gamebase::IsSuccess(Error)) { @@ -592,21 +592,21 @@ void USample::AddMappingWithCredential() **API** ```cpp -void AddMappingForcibly(const FGamebaseForcingMappingTicket& forcingMappingTicket, const FGamebaseAuthTokenDelegate& onCallback); +void AddMappingForcibly(const FGamebaseForcingMappingTicket& ForcingMappingTicket, const FGamebaseAuthTokenDelegate& Callback); // Legacy API -void AddMappingForcibly(const FString& providerName, const FString& forcingMappingKey, const FGamebaseAuthTokenDelegate& onCallback); -void AddMappingForcibly(const FString& providerName, const FString& forcingMappingKey, const UGamebaseJsonObject& additionalInfo, const FGamebaseAuthTokenDelegate& onCallback); -void AddMappingForcibly(const UGamebaseJsonObject& credentialInfo, const FString& forcingMappingKey, const FGamebaseAuthTokenDelegate& onCallback); +void AddMappingForcibly(const FString& ProviderName, const FString& ForcingMappingKey, const FGamebaseAuthTokenDelegate& Callback); +void AddMappingForcibly(const FString& ProviderName, const FString& ForcingMappingKey, const UGamebaseJsonObject& AdditionalInfo, const FGamebaseAuthTokenDelegate& Callback); +void AddMappingForcibly(const UGamebaseJsonObject& CredentialInfo, const FString& ForcingMappingKey, const FGamebaseAuthTokenDelegate& Callback); ``` **Example** ```cpp -void USample::AddMappingForcibly(const FString& providerName) +void USample::AddMappingForcibly(const FString& ProviderName) { UGamebaseSubsystem* Subsystem = UGameInstance::GetSubsystem(GetGameInstance()); - Subsystem->AddMapping(providerName, FGamebaseAuthTokenDelegate::CreateLambda([=](const FGamebaseAuthToken* AuthToken, const FGamebaseError* Error) + Subsystem->AddMapping(ProviderName, FGamebaseAuthTokenDelegate::CreateLambda([=](const FGamebaseAuthToken* AuthToken, const FGamebaseError* Error) { if (Gamebase::IsSuccess(Error)) { @@ -618,14 +618,14 @@ void USample::AddMappingForcibly(const FString& providerName) if (Error->Code == GamebaseErrorCode::AUTH_ADD_MAPPING_ALREADY_MAPPED_TO_OTHER_MEMBER) { // ForcingMappingTicket 클래스의 From() 메서드를 이용하여 ForcingMappingTicket 인스턴스를 얻습니다. - auto forcingMappingTicket = FGamebaseForcingMappingTicket::From(Error); - if (forcingMappingTicket.IsValid() == false) + auto ForcingMappingTicket = FGamebaseForcingMappingTicket::From(Error); + if (ForcingMappingTicket.IsValid() == false) { // Unexpected Error occurred. Contact Administrator. } // 강제 매핑을 시도합니다. - Subsystem->AddMappingForcibly(forcingMappingTicket, forcingMappingTicket->forcingMappingKey, + Subsystem->AddMappingForcibly(ForcingMappingTicket, ForcingMappingTicket->ForcingMappingKey, FGamebaseAuthTokenDelegate::CreateLambda([](const FGamebaseAuthToken* innerAuthToken, const FGamebaseError* innerError) { if (Gamebase::IsSuccess(Error)) @@ -660,7 +660,7 @@ Change Login API 호출이 실패하는 경우, Gamebase 로그인 상태는 기 **API** ```cs -void ChangeLogin(const FGamebaseForcingMappingTicket& forcingMappingTicket, const FGamebaseAuthTokenDelegate& onCallback); +void ChangeLogin(const FGamebaseForcingMappingTicket& ForcingMappingTicket, const FGamebaseAuthTokenDelegate& Callback); ``` **Example** @@ -668,7 +668,7 @@ void ChangeLogin(const FGamebaseForcingMappingTicket& forcingMappingTicket, cons 다음은 Facebook으로 매핑 시도 후 Facebook에 이미 매핑된 계정이 존재하자, 해당 계정으로 로그인을 변경하는 예시입니다. ```cpp -void USample::ChangeLoginWithFacebook(const FString& providerName) +void USample::ChangeLoginWithFacebook(const FString& ProviderName) { UGamebaseSubsystem* Subsystem = UGameInstance::GetSubsystem(GetGameInstance()); Subsystem->AddMapping(GamebaseAuthProvider::Facebook, FGamebaseAuthTokenDelegate::CreateLambda([=](const FGamebaseAuthToken* AuthToken, const FGamebaseError* Error) @@ -683,14 +683,14 @@ void USample::ChangeLoginWithFacebook(const FString& providerName) if (Error->Code == GamebaseErrorCode::AUTH_ADD_MAPPING_ALREADY_MAPPED_TO_OTHER_MEMBER) { // ForcingMappingTicket 클래스의 From() 메서드를 이용하여 ForcingMappingTicket 인스턴스를 얻습니다. - auto forcingMappingTicket = FGamebaseForcingMappingTicket::From(Error); - if (forcingMappingTicket.IsValid()) + auto ForcingMappingTicket = FGamebaseForcingMappingTicket::From(Error); + if (ForcingMappingTicket.IsValid()) { // 강제 매핑을 시도합니다. - Subsystem->ChangeLogin(forcingMappingTicket, forcingMappingTicket->ForcingMappingKey, - FGamebaseAuthTokenDelegate::CreateLambda([](const FGamebaseAuthToken* authTokenForcibly, const FGamebaseError* innerError) + Subsystem->ChangeLogin(ForcingMappingTicket, ForcingMappingTicket->ForcingMappingKey, + FGamebaseAuthTokenDelegate::CreateLambda([](const FGamebaseAuthToken* AuthTokenForcibly, const FGamebaseError* ChangeLoginError) { - if (Gamebase::IsSuccess(Error)) + if (Gamebase::IsSuccess(ChangeLoginError)) { // 로그인 변경 성공 } @@ -729,16 +729,16 @@ void USample::ChangeLoginWithFacebook(const FString& providerName) UNREAL_ANDROID ```cpp -void RemoveMapping(const FString& providerName, const FGamebaseErrorDelegate& onCallback); +void RemoveMapping(const FString& ProviderName, const FGamebaseErrorDelegate& Callback); ``` **Example** ```cpp -void USample::RemoveMapping(const FString& providerName) +void USample::RemoveMapping(const FString& ProviderName) { UGamebaseSubsystem* Subsystem = UGameInstance::GetSubsystem(GetGameInstance()); - Subsystem->RemoveMapping(providerName, FGamebaseErrorDelegate::CreateLambda([=](const FGamebaseError* Error) + Subsystem->RemoveMapping(ProviderName, FGamebaseErrorDelegate::CreateLambda([=](const FGamebaseError* Error) { if (Gamebase::IsSuccess(Error)) { @@ -807,8 +807,8 @@ FString GetUserID() const; ```cpp void USample::GetUserID() { - FString userID = UGamebaseSubsystem* Subsystem = UGameInstance::GetSubsystem(GetGameInstance()); - Subsystem->GetUserID(); + UGamebaseSubsystem* Subsystem = UGameInstance::GetSubsystem(GetGameInstance()); + FString UserID = Subsystem->GetUserID(); } ``` @@ -831,8 +831,8 @@ FString GetAccessToken() const; ```cpp void USample::GetAccessToken() { - FString accessToken = UGamebaseSubsystem* Subsystem = UGameInstance::GetSubsystem(GetGameInstance()); - Subsystem->GetAccessToken(); + UGamebaseSubsystem* Subsystem = UGameInstance::GetSubsystem(GetGameInstance()); + FString AccessToken = Subsystem->GetAccessToken(); } ``` @@ -855,8 +855,8 @@ FString GetLastLoggedInProvider() const; ```cpp void USample::GetLastLoggedInProvider() { - FString lastLoggedInProvider = UGamebaseSubsystem* Subsystem = UGameInstance::GetSubsystem(GetGameInstance()); - Subsystem->GetLastLoggedInProvider(); + UGamebaseSubsystem* Subsystem = UGameInstance::GetSubsystem(GetGameInstance()); + FString LastLoggedInProvider = Subsystem->GetLastLoggedInProvider(); } ``` @@ -897,7 +897,7 @@ Gamebase Console에 제재된 게임 유저로 등록될 경우, 로그인을 **API** ```cpp -void IssueTransferAccount(const FGamebaseTransferAccountDelegate& onCallback); +void IssueTransferAccount(const FGamebaseTransferAccountDelegate& Callback); ``` **Example** @@ -906,7 +906,7 @@ void IssueTransferAccount(const FGamebaseTransferAccountDelegate& onCallback); void USample::IssueTransferAccount() { UGamebaseSubsystem* Subsystem = UGameInstance::GetSubsystem(GetGameInstance()); - Subsystem->IssueTransferAccount(FGamebaseTransferAccountDelegate::CreateLambda([=](const FGamebaseTransferAccountInfo* transferAccountInfo, const FGamebaseError* Error) + Subsystem->IssueTransferAccount(FGamebaseTransferAccountDelegate::CreateLambda([=](const FGamebaseTransferAccountInfo* TransferAccountInfo, const FGamebaseError* Error) { if (Gamebase::IsSuccess(Error)) { @@ -926,7 +926,7 @@ void USample::IssueTransferAccount() **API** ```cpp -void QueryTransferAccount(const FGamebaseTransferAccountDelegate& onCallback); +void QueryTransferAccount(const FGamebaseTransferAccountDelegate& Callback); ``` **Example** @@ -935,7 +935,7 @@ void QueryTransferAccount(const FGamebaseTransferAccountDelegate& onCallback); void USample::QueryTransferAccount() { UGamebaseSubsystem* Subsystem = UGameInstance::GetSubsystem(GetGameInstance()); - Subsystem->IssueTransferAccount(FGamebaseTransferAccountDelegate::CreateLambda([=](const FGamebaseTransferAccountInfo* transferAccountInfo, const FGamebaseError* Error) + Subsystem->IssueTransferAccount(FGamebaseTransferAccountDelegate::CreateLambda([=](const FGamebaseTransferAccountInfo* TransferAccountInfo, const FGamebaseError* Error) { if (Gamebase::IsSuccess(Error)) { @@ -955,23 +955,25 @@ void USample::QueryTransferAccount() TransferAccountInfo 정보를 갱신할 수 있습니다. ```cpp -void RenewTransferAccount(const FGamebaseTransferAccountRenewConfiguration& configuration, const FGamebaseTransferAccountDelegate& onCallback); +void RenewTransferAccount(const FGamebaseTransferAccountRenewConfiguration& Configuration, const FGamebaseTransferAccountDelegate& Callback); ``` **Example** ```cpp -void USample::RenewTransferAccount(const FString& accountId, const FString& accountPassword) +void USample::RenewTransferAccount(const FString& AccountId, const FString& AccountPassword) { // 수동 설정 - FGamebaseTransferAccountRenewConfiguration configuration{ accountId, accountPassword }; - //FGamebaseTransferAccountRenewConfiguration configuration{ accountPassword }; + FGamebaseTransferAccountRenewConfiguration Configuration; + Configuration.AccountId = AccountId; + Configuration.AccountPassword = AccountPassword; + //FGamebaseTransferAccountRenewConfiguration Configuration { AccountPassword }; // 자동 설정 - //FGamebaseTransferAccountRenewConfiguration configuration{ type }; + //FGamebaseTransferAccountRenewConfiguration Configuration{ type }; UGamebaseSubsystem* Subsystem = UGameInstance::GetSubsystem(GetGameInstance()); - Subsystem->RenewTransferAccount(configuration, FGamebaseTransferAccountDelegate::CreateLambda([=](const FGamebaseTransferAccountInfo* transferAccountInfo, const FGamebaseError* Error) + Subsystem->RenewTransferAccount(Configuration, FGamebaseTransferAccountDelegate::CreateLambda([=](const FGamebaseTransferAccountInfo* TransferAccountInfo, const FGamebaseError* Error) { if (Gamebase::IsSuccess(Error)) { @@ -997,16 +999,16 @@ void USample::RenewTransferAccount(const FString& accountId, const FString& acco **API** ```cpp -void TransferAccountWithIdPLogin(const FString& accountId, const FString& accountPassword, const FGamebaseAuthTokenDelegate& onCallback); +void TransferAccountWithIdPLogin(const FString& AccountId, const FString& AccountPassword, const FGamebaseAuthTokenDelegate& Callback); ``` **Example** ```cpp -void USample::TransferAccountWithIdPLogin(const FString& accountId, const FString& accountPassword) +void USample::TransferAccountWithIdPLogin(const FString& AccountId, const FString& AccountPassword) { UGamebaseSubsystem* Subsystem = UGameInstance::GetSubsystem(GetGameInstance()); - Subsystem->TransferAccountWithIdPLogin(accountId, accountPassword, FGamebaseAuthTokenDelegate::CreateLambda([=](const FGamebaseAuthToken* AuthToken, const FGamebaseError* Error) + Subsystem->TransferAccountWithIdPLogin(AccountId, AccountPassword, FGamebaseAuthTokenDelegate::CreateLambda([=](const FGamebaseAuthToken* AuthToken, const FGamebaseError* Error) { if (Gamebase::IsSuccess(Error)) { @@ -1043,7 +1045,7 @@ void USample::TransferAccountWithIdPLogin(const FString& accountId, const FStrin **API** ```cpp -void RequestWithdrawal(const FGamebaseTemporaryWithdrawalDelegate& onCallback); +void RequestWithdrawal(const FGamebaseTemporaryWithdrawalDelegate& Callback); ``` **Example** @@ -1052,11 +1054,11 @@ void RequestWithdrawal(const FGamebaseTemporaryWithdrawalDelegate& onCallback); void USample::RequestWithdrawal() { UGamebaseSubsystem* Subsystem = UGameInstance::GetSubsystem(GetGameInstance()); - Subsystem->GetTemporaryWithdrawal()->RequestWithdrawal(FGamebaseTemporaryWithdrawalDelegate::CreateLambda([=](const FGamebaseTemporaryWithdrawalInfo* info, const FGamebaseError* Error) + Subsystem->GetTemporaryWithdrawal()->RequestWithdrawal(FGamebaseTemporaryWithdrawalDelegate::CreateLambda([=](const FGamebaseTemporaryWithdrawalInfo* Info, const FGamebaseError* Error) { if (Gamebase::IsSuccess(Error)) { - UE_LOG(GamebaseTestResults, Display, TEXT("RequestWithdrawal succeeded. The date when you can withdraw your withdrawal is %d"), info->gracePeriodDate); + UE_LOG(GamebaseTestResults, Display, TEXT("RequestWithdrawal succeeded. The date when you can withdraw your withdrawal is %d"), Info->GracePeriodDate); } else { @@ -1080,11 +1082,11 @@ void USample::Login() { if (Gamebase::IsSuccess(Error)) { - if (AuthToken->member.temporaryWithdrawal.IsSet()) + if (AuthToken->Member.TemporaryWithdrawal.IsSet()) { - const auto temporaryWithdrawal = AuthToken->member.temporaryWithdrawal.GetValue(); - // gracePeriodDate: epoch time in milliseconds - const FDateTime PeriodDate = FDateTime(1970, 1, 1) + FTimespan::FromMilliseconds(temporaryWithdrawal.gracePeriodDate); + const auto TemporaryWithdrawal = AuthToken->Member.TemporaryWithdrawal.GetValue(); + // GracePeriodDate: epoch time in milliseconds + const FDateTime PeriodDate = FDateTime(1970, 1, 1) + FTimespan::FromMilliseconds(TemporaryWithdrawal.GracePeriodDate); UE_LOG(GamebaseTestResults, Display, TEXT("User is under temporary withdrawa. GracePeriodDate : %s"), *PeriodDate.ToString()); } else @@ -1108,7 +1110,7 @@ void USample::Login() **API** ```cpp -void CancelWithdrawal(const FGamebaseErrorDelegate& onCallback); +void CancelWithdrawal(const FGamebaseErrorDelegate& Callback); ``` **Example** @@ -1140,7 +1142,7 @@ void USample::CancelTemporaryWithdrawal() **API** ```cpp -void WithdrawImmediately(const FGamebaseErrorDelegate& onCallback); +void WithdrawImmediately(const FGamebaseErrorDelegate& Callback); ``` **Example** @@ -1186,28 +1188,28 @@ void USample::Login() return; } - if (AuthToken->member.graceBan.IsSet()) + if (AuthToken->Member.GraceBan.IsSet()) { - const auto graceBan = AuthToken->Member.raceBan.GetValue(); + const auto GraceBan = AuthToken->Member.raceBan.GetValue(); - // gracePeriodDate: epoch time in milliseconds - const FDateTime PeriodDate = FDateTime(1970, 1, 1) + FTimespan::FromMilliseconds(graceBan.GracePeriodDate); + // GracePeriodDate: epoch time in milliseconds + const FDateTime PeriodDate = FDateTime(1970, 1, 1) + FTimespan::FromMilliseconds(GraceBan.GracePeriodDate); - if (graceBan.releaseRuleCondition.IsSet()) + if (GraceBan.ReleaseRuleCondition.IsSet()) { - const auto releaseRuleCondition = graceBan.ReleaseRuleCondition.GetValue(); + const auto ReleaseRuleCondition = GraceBan.ReleaseRuleCondition.GetValue(); // condition type: "AND", "OR" - FString releaseRule = FString::Printf(TEXT("%lld%s %s %dtime(s)"), releaseRuleCondition.Amount, - *releaseRuleCondition.Currency, *releaseRuleCondition.ConditionType, releaseRuleCondition.Count); + FString releaseRule = FString::Printf(TEXT("%lld%s %s %dtime(s)"), ReleaseRuleCondition.Amount, + *ReleaseRuleCondition.Currency, *ReleaseRuleCondition.ConditionType, ReleaseRuleCondition.Count); } - if (graceBan.PaymentStatus.IsSet()) + if (GraceBan.PaymentStatus.IsSet()) { - const auto paymentStatus = graceBan.PaymentStatus.GetValue(); + const auto paymentStatus = GraceBan.PaymentStatus.GetValue(); - FString paidAmount = FString::Printf(TEXT("%lld%s"), paymentStatus.Amount, *paymentStatus.Currency); - FString paidCount = paymentStatus.count + "time(s)"; + FString paidAmount = FString::Printf(TEXT("%lld%s"), PaymentStatus.Amount, *PaymentStatus.Currency); + FString paidCount = PaymentStatus.count + "time(s)"; } } else diff --git a/ko/unreal-etc.md b/ko/unreal-etc.md index 64fa9960..77b56c5b 100644 --- a/ko/unreal-etc.md +++ b/ko/unreal-etc.md @@ -93,7 +93,7 @@ Supported Platforms UNREAL_ANDROID ```cpp -void Initialize(const FGamebaseConfiguration& Configuration, const FGamebaseLaunchingInfoDelegate& onCallback); +void Initialize(const FGamebaseConfiguration& Configuration, const FGamebaseLaunchingInfoDelegate& Callback); ``` **Example** @@ -258,7 +258,7 @@ Supported Platforms UNREAL_WINDOWS ```cs -FDelegateHandle AddHandler(const FGamebaseEventDelegate::FDelegate& onCallback); +FDelegateHandle AddHandler(const FGamebaseEventDelegate::FDelegate& Callback); void RemoveHandler(const FDelegateHandle& handle); void RemoveAllHandler(); ``` @@ -297,23 +297,23 @@ void USample::AddEventHandler() Message.Category.Equals(GamebaseEventCategory::ServerPushAppKickOutMessageReceived) || Message.Category.Equals(GamebaseEventCategory::ServerPushTransferKickout)) { - auto serverPushData = FGamebaseEventServerPushData::From(Message.Data); + auto ServerPushData = FGamebaseEventServerPushData::From(Message.Data); } else if (Message.Category.Equals(GamebaseEventCategory::ObserverLaunching)) { - auto observerData = FGamebaseEventObserverData::From(Message.Data); + auto ObserverData = FGamebaseEventObserverData::From(Message.Data); } else if (Message.Category.Equals(GamebaseEventCategory::ObserverNetwork)) { - auto observerData = FGamebaseEventObserverData::From(Message.Data); + auto ObserverData = FGamebaseEventObserverData::From(Message.Data); } else if (Message.Category.Equals(GamebaseEventCategory::ObserverHeartbeat)) { - auto observerData = FGamebaseEventObserverData::From(Message.Data); + auto ObserverData = FGamebaseEventObserverData::From(Message.Data); } else if (Message.Category.Equals(GamebaseEventCategory::PurchaseUpdated)) { - auto purchasableReceipt = FGamebaseEventPurchasableReceipt::From(Message.Data); + auto PurchasableReceipt = FGamebaseEventPurchasableReceipt::From(Message.Data); } else if (Message.Category.Equals(GamebaseEventCategory::PushReceivedMessage)) { @@ -553,13 +553,13 @@ void USample::CheckServerPush(const FString& Category, const FGamebaseEventServe struct GAMEBASE_API FGamebaseEventObserverData { // 상태값을 나타내는 정보입니다. - int32 code; + int32 Code; // 추가 정보용 예비 필드입니다. FString Message; // 상태에 관련된 메시지 정보입니다. - FString extras; + FString Extras; } ``` @@ -864,7 +864,7 @@ void USample::SetGameUserData(int32 UserLevel, const FString& ChannelId, const F GameUserData.CharacterClassId = CharacterClassId; UGamebaseSubsystem* Subsystem = UGameInstance::GetSubsystem(GetGameInstance()); - Subsystem->GetAnalytics().SetGameUserData(GameUserData); + Subsystem->GetAnalytics()->SetGameUserData(GameUserData); } ``` @@ -900,7 +900,7 @@ void USample::TraceLevelUpNow(int32 UserLevel) { FGamebaseAnalyticesLevelUpData levelUpData{ UserLevel, FDateTime::Now().ToUnixTimestamp() }; UGamebaseSubsystem* Subsystem = UGameInstance::GetSubsystem(GetGameInstance()); - Subsystem->GetAnalytics().TraceLevelUp(levelUpData); + Subsystem->GetAnalytics()->TraceLevelUp(levelUpData); } ``` @@ -1025,8 +1025,8 @@ void USample::OpenContact() **API** ```cs -void RequestContactURL(const FGamebaseContactUrlDelegate& onCallback); -void RequestContactURL(const FGamebaseContactConfiguration& Configuration, const FGamebaseContactUrlDelegate& onCallback); +void RequestContactURL(const FGamebaseContactUrlDelegate& Callback); +void RequestContactURL(const FGamebaseContactConfiguration& Configuration, const FGamebaseContactUrlDelegate& Callback); ``` **ErrorCode** diff --git a/ko/unreal-initialization.md b/ko/unreal-initialization.md index bbdabffc..ee1e8552 100644 --- a/ko/unreal-initialization.md +++ b/ko/unreal-initialization.md @@ -42,7 +42,7 @@ Gamebase Console에 등록한 클라이언트 버전입니다. NHN Cloud 통합 인앱 결제 서비스인 IAP(In-App Purchase)를 초기화하기 위해 필요한 스토어 정보입니다. | Store | Code | GamebaseStoreCode | Description | -| ----------- | ---- | ------------ | +| ----------- | ---- | ------------ | ------------ | | App Store | AS | GamebaseStoreCode::AppStore | iOS에 한함 | | Google Play | GG | GamebaseStoreCode::Google | Android에 한함 | | One Store | ONESTORE | GamebaseStoreCode::OneStore | Android에 한함 | @@ -50,7 +50,6 @@ NHN Cloud 통합 인앱 결제 서비스인 IAP(In-App Purchase)를 초기화하 | Amazon Appstore | AMAZON | GamebaseStoreCode::Amazon | Android에 한함 | | Huawei AppGallery | HUAWEI | GamebaseStoreCode::Huawei | Android에 한함 | | MyCard | MYCARD | GamebaseStoreCode::MyCard | Android에 한함 | -| Windows | WIN | GamebaseStoreCode::Windows | Windows에 한함
(Store 미사용 시) | | Epic Store | EPIC | GamebaseStoreCode::Epic | Windows에 한함 | #### 4. bEnablePopup diff --git a/ko/unreal-purchase.md b/ko/unreal-purchase.md index 5f0c28d3..77688836 100644 --- a/ko/unreal-purchase.md +++ b/ko/unreal-purchase.md @@ -135,8 +135,8 @@ void USample::RequestPurchaseWithPayload(const FString& GamebaseProductId) if (Gamebase::IsSuccess(Error)) { UE_LOG(GamebaseTestResults, Display, TEXT("RequestPurchase succeeded. (GamebaseProductId= %s, price= %f, currency= %s, paymentSeq= %s, purchaseToken= %s)"), - *PurchasableReceipt->GamebaseProductId, PurchasableReceipt->price, *PurchasableReceipt->currency, - *PurchasableReceipt->paymentSeq, *PurchasableReceipt->purchaseToken); + *PurchasableReceipt->GamebaseProductId, PurchasableReceipt->price, *PurchasableReceipt->Currency, + *PurchasableReceipt->PaymentSeq, *PurchasableReceipt->PurchaseToken); FString payload = PurchasableReceipt->payload; } diff --git a/ko/unreal-ui.md b/ko/unreal-ui.md index 349523bb..68f9b227 100644 --- a/ko/unreal-ui.md +++ b/ko/unreal-ui.md @@ -18,8 +18,8 @@ Supported Platforms UNREAL_WINDOWS ```cpp -void ShowImageNotices(FGamebaseImageNoticeConfiguration& Configuration, const FGamebaseErrorDelegate& onCloseCallback); -void ShowImageNotices(FGamebaseImageNoticeConfiguration& Configuration, const FGamebaseErrorDelegate& onCloseCallback, const FGamebaseImageNoticeEventDelegate& onEventCallback); +void ShowImageNotices(FGamebaseImageNoticeConfiguration& Configuration, const FGamebaseErrorDelegate& CloseCallback); +void ShowImageNotices(FGamebaseImageNoticeConfiguration& Configuration, const FGamebaseErrorDelegate& CloseCallback, const FGamebaseImageNoticeEventDelegate& EventCallback); ``` **Example** @@ -116,8 +116,8 @@ Supported Platforms UNREAL_ANDROID ```cpp -void ShowTermsView(const FGamebaseDataContainerDelegate& onCallback); -void ShowTermsView(const FGamebaseTermsConfiguration& Configuration, const FGamebaseDataContainerDelegate& onCallback); +void ShowTermsView(const FGamebaseDataContainerDelegate& Callback); +void ShowTermsView(const FGamebaseTermsConfiguration& Configuration, const FGamebaseDataContainerDelegate& Callback); ``` **ErrorCode** @@ -288,7 +288,7 @@ Supported Platforms UNREAL_WINDOWS ```cpp -void UpdateTerms(const FGamebaseUpdateTermsConfiguration& Configuration, const FGamebaseErrorDelegate onCallback); +void UpdateTerms(const FGamebaseUpdateTermsConfiguration& Configuration, const FGamebaseErrorDelegate Callback); ``` **ErrorCode** @@ -355,8 +355,8 @@ bool IsShowingTermsView(); ```cpp void USample::IsShowingTermsView() { - bool isShowingTermsView = UGamebaseSubsystem* Subsystem = UGameInstance::GetSubsystem(GetGameInstance()); - Subsystem->GetTerms()->IsShowingTermsView(); + UGamebaseSubsystem* Subsystem = UGameInstance::GetSubsystem(GetGameInstance()); + bool isShowingTermsView = Subsystem->GetTerms()->IsShowingTermsView(); UE_LOG(GamebaseTestResults, Display, TEXT("IsShowingTermsView : %s"), isShowingTermsView ? TEXT("true") : TEXT("false")); } ``` @@ -384,7 +384,7 @@ Supported Platforms UNREAL_WINDOWS ```cpp -void ShowWebView(const FString& Url, const FGamebaseWebViewConfiguration& Configuration, FGamebaseErrorDelegate& onCloseCallback, const TArray& SchemeList, const FGamebaseSchemeEventDelegate& onSchemeEvent); +void ShowWebView(const FString& Url, const FGamebaseWebViewConfiguration& Configuration, FGamebaseErrorDelegate& CloseCallback, const TArray& SchemeList, const FGamebaseSchemeEventDelegate& onSchemeEvent); ``` **Example** @@ -516,7 +516,7 @@ Supported Platforms ```cpp void ShowAlert(const FString& Title, const FString& Message); -void ShowAlert(const FString& Title, const FString& Message, const FGamebaseAlertCloseDelegate& onCloseCallback); +void ShowAlert(const FString& Title, const FString& Message, const FGamebaseAlertCloseDelegate& CloseCallback); ``` **Example**