Version: Unity 6.0 (6000.0)
언어 : 한국어
아마존 앱스토어 설정
제품 정의

코드리스 IAP

코드리스 IAP 는 Unity 앱에서 인앱 구매를 구현하는 가장 쉬운 방법입니다. Unity 에디터는 최소한의 스크립트 작성을 통해 기본 IAP 통합을 구성할 수 있는 인터페이스를 제공합니다.

코드리스 IAP는 코드 없이 실제 IAP 거래를 처리합니다. 코드리스 IAP 구현은 에디터를 사용하는 두 단계의 프로세스로 이루어져 있습니다.

  1. 게임에 IAP 버튼 을 추가합니다.
  2. IAP 카탈로그 에서 제품 을 정의합니다.

Unity 구매 시스템은 런타임 시 카탈로그에 입력하는 제품을 설정합니다. 플레이어가 IAP 버튼 을 선택하면 관련 제품의 구매 흐름이 시작됩니다.

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

코드리스 IAP 구현

시작하기 전에 최신 Unity IAP SDK를 설치합니다. 자세한 내용은 Unity IAP 설정에 대한 기술 자료를 참조하십시오.

씬에 IAP 버튼 추가

씬에 IAP 버튼 을 추가하려면 Unity 에디터 메뉴에서 Window > Unity IAP > Create IAP Button 을 선택합니다.

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

IAP 카탈로그에서 제품 추가

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

  • Window > Unity IAP > IAP Catalog 를 선택합니다.
  • 또는 IAP 버튼 을 선택하고 인스펙터에서 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 버튼 또는 IAP 리스너 의 첫 번째 인스턴스가 런타임 시 로드될 때 자동으로 발생합니다. 그러나 게임에 IAP 버튼 또는 IAP 리스너가 표시되기 전에 SDK를 초기화해야 할 수 있습니다(예: 애플리케이션 시작 후에 IAP 프로모션 혜택 제공). 이러한 경우 IAP Catalog 창 하단에 있는 Automatically initialize UnityPurchasing (recommended) 을 선택합니다. 이렇게 하면 애플리케이션이 시작될 때 즉시 UnityPurchasing이 초기화되고 코드리스 인스턴스의 라이프사이클에 대한 종속성이 제거됩니다.

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

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

참고: 자동 초기화를 IAP 버튼 또는 리스너와 함께 사용할 수 있습니다. 이 경우 SDK는 IAP 버튼이나 리스너의 첫 번째 인스턴스가 씬에 로드될 때가 아니라 게임이 시작될 때 초기화됩니다. 하지만 스크립트에서 수동으로 초기화하는 경우에는 자동 초기화를 활성화해서는 안 됩니다. 오류가 발생할 수 있기 때문입니다.

구매 이행

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

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

이행 스크립트 코드 샘플:

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

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

확장 기능

앱 스토어로 익스포트

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

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 개발자 웹사이트Google 인앱 청구 기술 자료를 참조하십시오.

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의 애플리케이션 로더를 통해 임포트하는 방법에 대한 전체 지침은 iTunes Connect 웹사이트Application Loader 기술 자료를 참조하십시오.

Restore 버튼

iTunes를 비롯한 일부 앱 스토어에는 앱에 Restore 버튼이 있어야 합니다. 코드리스 IAP를 사용하면 앱에서 복원 버튼을 쉽게 구현할 수 있습니다.

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

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

사용자가 런타임 시 이 버튼을 선택하면 버튼이 현재 스토어의 구매 복구 API를 호출합니다. 이 기능은 iOS 앱 스토어, Mac 앱 스토어, Windows 스토어 앱 스토어에서 작동합니다. 다른 플랫폼에서 Restore 버튼을 숨길 수 있습니다.

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

자세한 내용은 구매 복원에 대한 기술 자료를 참조하십시오.

IAP 리스너

코드리스 IAP는 성공하거나 실패한 구매 이벤트를 계층 구조의 활성 IAP Button 컴포넌트에 디스패치합니다. 그러나 성공한 구매를 처리할 때 활성 IAP 버튼 을 사용하기가 어렵거나 바람직하지 않을 때가 있습니다. 예를 들어 구매가 완료되기 전에 중단되면 Unity IAP는 다음에 구매가 초기화되면 구매를 다시 처리하려고 시도합니다. 앱이 실행된 직후에 이 작업을 수행하기를 원할 수 있으며, 이 경우에는 IAP 버튼 이 적합하지 않을 수 있습니다. 코드리스 IAP에는 이러한 경우에 적합한 IAP Listener 컴포넌트가 포함되어 있습니다. 씬 계층 구조의 활성 IAP 리스너IAP 버튼 으로 디스패치할 수 없는 모든 구매 이벤트를 수신합니다.

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

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

Unity IAP의 확장 기능 액세스

코드리스 IAP 기능은 Unity IAP의 확장 기능 대부분을 노출하지 않습니다. 그러나 코드리스 IAP는 기존 스크립팅 API를 기반으로 구현되므로 사용자의 요구 사항에 맞게 IAPButton.cs 스크립트(Assets/Plugins/UnityPurchasing/script/IAPButton.cs)의 기능을 대부분 수정할 수 있습니다.

Unity IAP의 확장 기능을 사용하려면 IStoreListener.OnInitialize에서 반환한__ Unity IAP__Unity In App Purchase(인앱 결제) 의 약어입니다.
See in Glossary
IStoreControllerIExtensionProvider 인스턴스에 액세스하십시오.


  • 2018–05–30
아마존 앱스토어 설정
제품 정의