코드리스 IAP(Codeless IAP) 를 사용하면 아주 간편하게 Unity 앱에 인앱 결제를 구현할 수 있습니다. Unity 에디터는 최소한의 스크립트 작성을 통해 기본 IAP 통합을 설정하기 위한 인터페이스를 제공합니다.
코드리스 IAP는 코드를 요구하지 않고도 실제 IAP 트랜잭션을 처리합니다. 코드리스 IAP를 구현하려면 에디터를 사용하여 다음의 두 단계를 완료하십시오.
Unity Purchasing 시스템은 런타임 시점에 카탈로그에 추가되는 제품을 설정합니다. 플레이어가 IAP Button 을 선택하면 연결된 제품의 구매 플로를 시작합니다.
참고: 여전히 스크립팅을 사용하여 플레이어가 새로 구입한 콘텐츠에 액세스하는 방법을 정의해야 합니다. 자세한 내용은 아래의 구매 이행 섹션을 참조하십시오.
시작하기 전에 최신 Unity IAP SDK를 설치하십시오. 자세한 내용은 Unity IAP 설치를 참조하십시오.
Unity 에디터에서 씬에 IAP Button 을 추가하려면 Window > Unity IAP > Create IAP Button 을 선택하십시오.
IAP Catalog GUI는 다음 두 가지 방법 중 하나로 열 수 있습니다.
그런 다음 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 Button 또는 Listener와 함께 자동 초기화를 수행할 수 있습니다. 이 경우에는 IAP Button 또는 Listener의 첫 번째 인스턴스가 씬에 로드될 때가 아니라, 게임이 시작할 때 SDK가 초기화됩니다. 하지만 스크립트에서 수동으로 초기화하려는 경우에는 자동 초기화 옵션을 활성화하지 마십시오. 그러면 오류가 발생할 수 있습니다.
카탈로그에 최소 하나의 제품이 들어 있으면 구매가 완료 또는 실패할 때 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에 업로드하는 자세한 방법은 Android Developers website의 Google 인앱 청구 문서를 참조하십시오.
Apple iTunes용 제품 카탈로그를 익스포트하려면 다음 단계를 따르십시오.
Apple Application Loader를 통해 임포트하는 자세한 방법은 iTunes Connect 웹사이트의 Application Loader 문서를 참조하십시오.
iTunes를 비롯하여 일부 앱 스토어의 경우 앱에 Restore 버튼을 추가해야 합니다. 코드리스 IAP는 앱에 Restore 버튼을 구현할 수 있는 간단한 방법을 제공합니다.
Restore 버튼을 추가하려면 다음 단계를 따르십시오.
사용자가 런타임 시점에 이 버튼을 선택하면 버튼은 현재 스토어에 대한 구매 복원 API를 호출합니다. 이 기능은 iOS App Store, Mac App Store, Windows Store 앱 스토어에서 이용할 수 있습니다. 다른 플랫폼에서는 Restore 버튼을 숨길 수도 있습니다.
구매 복원이 성공하면 Unity IAP는 해당 제품과 연결된 IAP Button 에 대해 On Purchase Complete (Product) 함수를 호출합니다.
자세한 내용은 구매 복원에 관한 문서를 참조하십시오.
코드리스 IAP가 성공하거나 실패한 구매 이벤트를 계층 구조의 액티브 IAP Button 에 디스패치합니다. 하지만 성공한 구매를 처리할 때는 액티브 IAP Button 을 사용하기가 어렵거나 바람직하지 않을 수도 있습니다. 예를 들어, 구매가 완료되기 전에 인터럽트되면 Unity IAP는 다음 번에 초기화될 때 구매를 다시 처리하려고 시도합니다. 이러한 동작이 앱 실행 직후에 발생하기를 원하는 경우에는 IAP Button 을 사용할 수 없습니다. 코드리스 IAP에는 바로 이러한 경우를 위한 IAP Listener 컴포넌트가 포함됩니다. 씬 계층 구조의 액티브 IAP Listener 는 IAP Button 에 디스패치할 수 없는 모든 구매 이벤트를 수신합니다.
IAP Listener 를 추가하려면 다음 단계를 따르십시오.
코드리스 IAP 기능은 Unity IAP의 확장 기능을 대부분 노출하지 않습니다. 하지만 코드리스 IAP는 기존 스크립팅 API를 기반으로 구현되므로, IAPButton.cs script (Assets/Plugins/UnityPurchasing/script/IAPButton.cs)에서 필요에 따라 대부분의 기능을 수정할 수 있습니다.
Unity IAP의 확장 기능을 사용하려면 IStoreListener.OnInitialize
에서 반환한 Unity IAP IStoreController
및 IExtensionProvider
인스턴스에 액세스하십시오.