Version: 2019.1
Samsung Galaxy IAP 설정
상품 정의

코드리스 IAP

코드리스 IAP(Codeless IAP) 를 사용하면 아주 간편하게 Unity 앱에 인앱 결제를 구현할 수 있습니다. Unity 에디터는 최소한의 스크립트 작성을 통해 기본 IAP 통합을 설정하기 위한 인터페이스를 제공합니다.

코드리스 IAP는 코드를 요구하지 않고도 실제 IAP 트랜잭션을 처리합니다. 코드리스 IAP를 구현하려면 에디터를 사용하여 다음의 두 단계를 완료하십시오.

  1. 게임에 IAP Buttons 를 추가합니다.
  2. IAP Catalog 에서 Products 를 정의합니다.

Unity Purchasing 시스템은 런타임 시점에 카탈로그에 추가되는 제품을 설정합니다. 플레이어가 IAP Button 을 선택하면 연결된 제품의 구매 플로를 시작합니다.

참고: 여전히 스크립팅을 사용하여 플레이어가 새로 구입한 콘텐츠에 액세스하는 방법을 정의해야 합니다. 자세한 내용은 아래의 구매 이행 섹션을 참조하십시오.

코드리스 IAP 구현

시작하기 전에 최신 Unity IAP SDK를 설치하십시오. 자세한 내용은 Unity IAP 설치를 참조하십시오.

씬에 IAP 버튼 추가

Unity 에디터에서 씬에 IAP Button 을 추가하려면 Window > Unity IAP > Create IAP Button 을 선택하십시오.

Unity 에디터에서 코드리스 IAP Button 만들기
Unity 에디터에서 코드리스 IAP Button 만들기

IAP 카탈로그에서 제품 추가

IAP Catalog GUI는 다음 두 가지 방법 중 하나로 열 수 있습니다.

  • Window > Unity IAP > IAP Catalog 를 선택합니다.
  • 또는 IAP Button 을 선택한 후 인스펙터의 IAP Button (Script) 컴포넌트를 찾은 후 IAP Catalog… 를 클릭합니다.
IAP Button 스크립트 컴포넌트를 통해 IAP Catalog GUI에 액세스
IAP Button 스크립트 컴포넌트를 통해 IAP Catalog GUI에 액세스

그런 다음 GUI를 사용하여 카탈로그의 각 제품에 대해 다음의 속성을 정의합니다.

  • 앱 스토어와 커뮤니케이션하는 데 사용할 Product ID (이 ID는 Advanced 옵션을 통해 고유한 스토어별 ID로 오버라이드할 수 있음)
  • Product Type (Consumable, Non-Consumable 또는 Subscription)
IAP Catalog GUI에 제품 정보 추가
IAP Catalog GUI에 제품 정보 추가

참고: IAP Catalog GUI는 제품 설정을 위한 추가 툴을 제공합니다. 해당 스토어에 업로드하기 위해 카탈로그를 익스포트하기 전에 설명과 가격 정보도 추가해야 합니다. 이 설정에 대한 자세한 내용은 제품 정의에 관한 문서를 참조하십시오.

UnityPurchasing 자동 초기화

인앱 구매가 작동하려면 IAP SDK를 초기화해야 합니다. 이 작업은 코드리스 IAP Button 또는 IAP Listener의 첫 번째 인스턴스가 런타임 시점에 로드될 때 자동으로 이루어집니다. 하지만 IAP Button 또는 IAP Listener가 게임 내에 표시되기 전에 SDK를 초기화할 수도 있습니다(예: 애플리케이션 실행 후 IAP Promo 오퍼를 제공하는 경우). 이 경우 IAP Catalog 창 아래에 있는 Automatically initialize UnityPurchasing (recommended) 을 체크 표시하십시오. 그러면 애플리케이션이 시작할 때 UnityPurchasing이 초기화되고 코드리스 인스턴스의 수명 주기에 대한 종속성을 제거합니다.

IAP Catalog GUI를 통해 SDK 자동 초기화 활성화
IAP Catalog GUI를 통해 SDK 자동 초기화 활성화

제대로 작동하려면 카탈로그에 최소 하나의 제품이 들어 있어야 합니다.

참고: IAP Button 또는 Listener와 함께 자동 초기화를 수행할 수 있습니다. 이 경우에는 IAP Button 또는 Listener의 첫 번째 인스턴스가 씬에 로드될 때가 아니라, 게임이 시작할 때 SDK가 초기화됩니다. 하지만 스크립트에서 수동으로 초기화하려는 경우에는 자동 초기화 옵션을 활성화하지 마십시오. 그러면 오류가 발생할 수 있습니다.

구매 이행

카탈로그에 최소 하나의 제품이 들어 있으면 구매가 완료 또는 실패할 때 IAP Button 동작을 정의할 수 있습니다.

  1. 씬 뷰에서 IAP Button 을 선택한 후 인스펙터에서 IAP Button (Script) 컴포넌트를 찾습니다.
  2. Product ID 드롭다운 리스트에서 IAP Button 에 연결할 제품을 선택합니다. 코드리스 IAP Button과 연결할 제품 선택
  3. 자체 함수를 만들어 구매 이행을 제공하거나, 이러한 역할을 하는 에셋을 임포트합니다(아래 코드 예제 참조).
  4. 게임 오브젝트에 구매 이행 스크립트를 컴포넌트로 적용합니다. 구매 이행 스크립트로 게임 오브젝트 만들기
  5. 인스펙터의 IAP Button (Script) 컴포넌트로 돌아간 후 더하기(+) 버튼을 클릭하여 On Purchase Complete (Product) 리스트에 함수를 추가합니다.
  6. 아래에 표시된 것처럼 구매 이행 스크립트가 포함된 게임 오브젝트를 On Purchase Complete (Product) 이벤트 필드로 드래그한 후 드롭다운 메뉴에서 함수를 선택합니다. 구매 이행 스크립트를 IAP Button 이벤트 필드에 할당

이행 스크립트 코드 예제:

public void GrantCredits (int credits){
    userCredits = userCredits + credits;
    Debug.Log("You received " + credits " Credits!");
}

게임을 실행하여 IAP Button 을 테스트하십시오.

확장 기능

앱 스토어로 익스포트

구매가 동작하려면 해당 앱 스토어에서 카탈로그를 설정해야 합니다. 이렇게 하려면 제품 카탈로그를 CSV 파일로 Google Play로 익스포트하거나, Apple Application Loader를 통해 XML 파일로 iTunes Store로 익스포트해야 합니다.

Google Play

Google Play용 제품 카탈로그를 익스포트하려면 다음 단계를 따르십시오.

  1. IAP Catalog 창(Window > Unity IAP > IAP Catalog)에서 각 제품에 다음 항목이 정의되어 있는지 확인합니다.
    * ID
    * Type
    * TitleDescription
    * Price 또는 Pricing Template ID
  2. 스크롤을 내려 App Store Export 를 선택합니다.
  3. Google Play CSV 를 선택합니다.
  4. CSV 파일을 저장할 위치를 선택합니다.

익스포트한 카탈로그를 Google Play에 업로드하는 자세한 방법은 Android Developers websiteGoogle 인앱 청구 문서를 참조하십시오.

Apple iTunes

Apple iTunes용 제품 카탈로그를 익스포트하려면 다음 단계를 따르십시오.

  1. IAP Catalog 창(Window > Unity IAP > IAP Catalog)에서 각 제품에 다음 항목이 정의되어 있는지 확인합니다.
    * ID
    * Type
    * TitleDescription
    * Price TierScreenshot path
    * Apple SKU(iTunes Connect에서 찾을 수 있음)
    * Apple Team ID(Apple 개발자 웹사이트에서 찾을 수 있음)
  2. 스크롤을 내려 App Store Export 를 선택합니다.
  3. Apple XML Delivery를 선택합니다.
  4. XML 파일을 저장할 위치를 선택합니다.

Apple Application Loader를 통해 임포트하는 자세한 방법은 iTunes Connect 웹사이트Application Loader 문서를 참조하십시오.

Restore 버튼

iTunes를 비롯하여 일부 앱 스토어의 경우 앱에 Restore 버튼을 추가해야 합니다. 코드리스 IAP는 앱에 Restore 버튼을 구현할 수 있는 간단한 방법을 제공합니다.

Restore 버튼을 추가하려면 다음 단계를 따르십시오.

  1. 씬에 IAP Button 을 추가합니다(Window > Unity IAP > Create IAP Button).
  2. IAP Button 을 선택한 후 인스펙터에서 해당 IAP Button (Script) 컴포넌트를 찾은 후 Button Type 드롭다운 메뉴에서 Restore를 선택합니다(컴포넌트의 다른 필드는 대부분 인스펙터 뷰에서 사라짐). 구매 복원을 위한 IAP Button 수정

사용자가 런타임 시점에 이 버튼을 선택하면 버튼은 현재 스토어에 대한 구매 복원 API를 호출합니다. 이 기능은 iOS App Store, Mac App Store, Windows 스토어, Samsung Apps, Cloud Moolah 앱 스토어에서 이용할 수 있습니다. 다른 플랫폼에서는 Restore 버튼을 숨길 수도 있습니다.

구매 복원이 성공하면 Unity IAP는 해당 제품과 연결된 IAP Button 에 대해 On Purchase Complete (Product) 함수를 호출합니다.

자세한 내용은 구매 복원에 관한 문서를 참조하십시오.

IAP Listener

코드리스 IAP가 성공하거나 실패한 구매 이벤트를 계층 구조의 액티브 IAP Button 에 디스패치합니다. 하지만 성공한 구매를 처리할 때는 액티브 IAP Button 을 사용하기가 어렵거나 바람직하지 않을 수도 있습니다. 예를 들어, 구매가 완료되기 전에 인터럽트되면 Unity IAP는 다음 번에 초기화될 때 구매를 다시 처리하려고 시도합니다. 이러한 동작이 앱 실행 직후에 발생하기를 원하는 경우에는 IAP Button 을 사용할 수 없습니다. 코드리스 IAP에는 바로 이러한 경우를 위한 IAP Listener 컴포넌트가 포함됩니다. 씬 계층 구조의 액티브 IAP ListenerIAP Button 에 디스패치할 수 없는 모든 구매 이벤트를 수신합니다.

IAP Listener 를 추가하려면 다음 단계를 따르십시오.

  1. Unity 에디터에서 Window > Unity IAP > Create IAP Listener 를 선택합니다.
  2. 구매 이행 스크립트를 GameObject 컴포넌트로 작성하기 위한 단계를 따릅니다.
  3. 씬의 IAP Listener 를 선택한 후 인스펙터에서 해당 IAP Listener (Script) 컴포넌트를 찾은 후 더하기(+) 버튼을 클릭하여 On Purchase Complete (Product) 리스트에 함수를 추가합니다.
  4. 구매 이행 스크립트가 포함된 게임 오브젝트를 컴포넌트의 인스펙터에서 이벤트 필드로 드래그한 후 드롭다운 메뉴에서 함수를 선택합니다. 예외 처리를 위한 IAP Listener 설정

Unity IAP의 확장 기능 액세스

코드리스 IAP 기능은 Unity IAP의 확장 기능을 대부분 노출하지 않습니다. 하지만 코드리스 IAP는 기존 스크립팅 API를 기반으로 구현되므로, IAPButton.cs script (Assets/Plugins/UnityPurchasing/script/IAPButton.cs)에서 필요에 따라 대부분의 기능을 수정할 수 있습니다.

Unity IAP의 확장 기능을 사용하려면 IStoreListener.OnInitialize에서 반환한 Unity IAP IStoreControllerIExtensionProvider 인스턴스에 액세스하십시오.


Samsung Galaxy IAP 설정
상품 정의