코드리스 IAP 는 Unity 앱에서 인앱 구매를 구현하는 가장 쉬운 방법입니다. Unity 에디터는 최소한의 스크립트 작성을 통해 기본 IAP 통합을 구성할 수 있는 인터페이스를 제공합니다.
코드리스 IAP는 코드 없이 실제 IAP 거래를 처리합니다. 코드리스 IAP 구현은 에디터를 사용하는 두 단계의 프로세스로 이루어져 있습니다.
Unity 구매 시스템은 런타임 시 카탈로그에 입력하는 제품을 설정합니다. 플레이어가 IAP 버튼 을 선택하면 관련 제품의 구매 흐름이 시작됩니다.
참고: 스크립팅을 사용하여 플레이어가 새로 구매한 콘텐츠에 액세스하는 방식을 정의해야 합니다. 자세한 내용은 아래의 구매 이행 섹션을 참조하십시오.
시작하기 전에 최신 Unity IAP SDK를 설치합니다. 자세한 내용은 Unity IAP 설정에 대한 기술 자료를 참조하십시오.
씬에 IAP 버튼 을 추가하려면 Unity 에디터 메뉴에서 Window > Unity IAP > Create IAP Button 을 선택합니다.
IAP Catalog GUI는 다음 두 가지 방법 중 하나로 열 수 있습니다.
그런 다음 GUI를 사용하여 카탈로그의 각 제품에 다음의 속성을 정의합니다.
참고: IAP Catalog GUI는 제품을 설정하는 추가 툴을 제공합니다. 해당 스토어에 업로드하기 위해 카탈로그를 익스포트하기 전에 설명과 가격 정보를 입력해야 합니다. 이러한 설정에 대한 자세한 내용은 제품 정의에 대한 기술 자료를 참조하십시오.
UnityPurchasing 자동 초기화인앱 구매가 작동하려면 IAP SDK가 초기화되어야 합니다. 코드리스 IAP 버튼 또는 IAP 리스너 의 첫 번째 인스턴스가 런타임 시 로드될 때 자동으로 발생합니다. 그러나 게임에 IAP 버튼 또는 IAP 리스너가 표시되기 전에 SDK를 초기화해야 할 수 있습니다(예: 애플리케이션 시작 후에 IAP 프로모션 혜택 제공). 이러한 경우 IAP Catalog 창 하단에 있는 Automatically initialize UnityPurchasing (recommended) 을 선택합니다. 이렇게 하면 애플리케이션이 시작될 때 즉시 UnityPurchasing이 초기화되고 코드리스 인스턴스의 라이프사이클에 대한 종속성이 제거됩니다.
제대로 작동하려면 카탈로그에 최소 하나의 제품이 들어 있어야 합니다.
참고: 자동 초기화를 IAP 버튼 또는 리스너와 함께 사용할 수 있습니다. 이 경우 SDK는 IAP 버튼이나 리스너의 첫 번째 인스턴스가 씬에 로드될 때가 아니라 게임이 시작될 때 초기화됩니다. 하지만 스크립트에서 수동으로 초기화하는 경우에는 자동 초기화를 활성화해서는 안 됩니다. 오류가 발생할 수 있기 때문입니다.
카탈로그에 최소 하나의 제품이 들어 있으면 구매가 완료 또는 실패할 때 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에 업로드하는 방법에 대한 전체 지침은 Android 개발자 웹사이트의 Google 인앱 청구 기술 자료를 참조하십시오.
Apple iTunes용 제품 카탈로그를 익스포트하려면 다음 단계를 따르십시오.
Apple의 애플리케이션 로더를 통해 임포트하는 방법에 대한 전체 지침은 iTunes Connect 웹사이트의 Application Loader 기술 자료를 참조하십시오.
iTunes를 비롯한 일부 앱 스토어에는 앱에 Restore 버튼이 있어야 합니다. 코드리스 IAP를 사용하면 앱에서 복원 버튼을 쉽게 구현할 수 있습니다.
Restore 버튼을 추가하려면 다음 단계를 따르십시오.
사용자가 런타임 시 이 버튼을 선택하면 버튼이 현재 스토어의 구매 복구 API를 호출합니다. 이 기능은 iOS 앱 스토어, Mac 앱 스토어, Windows 스토어 앱 스토어에서 작동합니다. 다른 플랫폼에서 Restore 버튼을 숨길 수 있습니다.
구매 복원이 성공하면 Unity IAP는 해당 제품과 연결된 IAP 버튼 에 On Purchase Complete (Product) 함수를 호출합니다.
자세한 내용은 구매 복원에 대한 기술 자료를 참조하십시오.
코드리스 IAP는 성공하거나 실패한 구매 이벤트를 계층 구조의 활성 IAP Button 컴포넌트에 디스패치합니다. 그러나 성공한 구매를 처리할 때 활성 IAP 버튼 을 사용하기가 어렵거나 바람직하지 않을 때가 있습니다. 예를 들어 구매가 완료되기 전에 중단되면 Unity IAP는 다음에 구매가 초기화되면 구매를 다시 처리하려고 시도합니다. 앱이 실행된 직후에 이 작업을 수행하기를 원할 수 있으며, 이 경우에는 IAP 버튼 이 적합하지 않을 수 있습니다. 코드리스 IAP에는 이러한 경우에 적합한 IAP Listener 컴포넌트가 포함되어 있습니다. 씬 계층 구조의 활성 IAP 리스너 는 IAP 버튼 으로 디스패치할 수 없는 모든 구매 이벤트를 수신합니다.
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 IStoreController 및 IExtensionProvider 인스턴스에 액세스하십시오.