인앱 구매를 사용하려면 앱에서 판매용 제품 리스트를 제공해야 합니다. 이 작업은 스크립팅을 사용하거나, Codeless IAP Catalog (Window > Unity IAP > IAP Catalog)를 사용하여 수행할 수 있습니다. 어느 쪽 방법을 선택하든 각 제품에 대해 적절한 속성의 정의해야 합니다. 이 페이지는 이러한 속성을 자세히 설명합니다.
앱 스토어와 커뮤니케이션할 때 제품의 기본 ID로 사용할 크로스 플랫폼 고유 식별자를 입력합니다.
중요: 이 ID는 소문자, 숫자, 밑줄 또는 마침표만 포함할 수 있습니다.
각 제품은 다음 타입 중 하나여야 합니다.
타입 | 설명 | 예제 |
---|---|---|
Consumable | 사용자가 제품을 반복적으로 구매할 수 있습니다. 소모용 제품은 복원할 수 없습니다. | * 가상 통화 * HP 포션 * 일시적인 파워업 효과 |
Non-Consumable | 사용자가 제품을 한 번만 구매할 수 있습니다. 비소모용 제품은 복원할 수 있습니다. | * 무기 또는 방어구 * 추가 콘텐츠 이용 |
Subscription | 사용자가 한정 기간 동안 제품에 액세스할 수 있습니다. 구독 제품은 복원할 수 있습니다. | * 온라인 게임 월간 구독 * VIP 상태를 부여하는 일일 보너스 * 무료 평가판 |
참고: 구독 타입 지원에 대한 자세한 정보는 Subscription Product support를 참조하십시오.
이 섹션에서는 게임 내 상점에서 사용할 제품과 연결된 메타데이터에 관해 설명합니다.
다음 필드를 사용하여 제품에 대한 설명 텍스트를 추가하십시오.
필드 | 데이터 타입 | 설명 | 예제 |
---|---|---|---|
Product Locale | 열거형 | 지역에서 이용 가능한 앱 스토어를 결정합니다. | 영어(미국) (Google Play, Apple) |
Product Title | String | 앱 스토어에 표시되는 제품 이름입니다. | “HP 포션” |
Product Description | String | 앱 스토어에 표시되는 제품의 설명 텍스트로, 대개 제품에 대한 기능을 안내합니다. | “HP를 50만큼 회복합니다.” |
더하기(+) 아이콘을 클릭하고 추가 로케일을 선택하여 Title 및 Description 필드에 대한 Translations 를 추가하십시오. 변역을 원하는 만큼 추가할 수 있습니다.
이 섹션에서 구매자에게 지급할 콘텐츠에 대한 로컬 고정 정의를 추가하십시오. 지급을 이용하면 게임 내 월렛 또는 인벤토리를 쉽게 관리할 수 있습니다. 개발자들은 제품에 이름과 수량 레이블을 지정하여 구매 시 특정 아이템 타입(예: 코인, 보석 등)의 게임 내 개수를 빠르게 조정할 수 있습니다.
참고: 이 기능은 Unity 2017.2 이상에서만 이용할 수 있습니다.
필드 | 데이터 타입 | 설명 | 예제 |
---|---|---|---|
Payout Type | 열거형 | 구매자가 받는 콘텐츠 카테고리를 정의합니다. 다음의 네 가지 타입이 있습니다. | * 통화 * 아이템 * 자원 * 기타 |
Payout Subtype | String | 콘텐츠 카테고리에 세분화 레벨을 제공합니다. | * Currency 타입의 “골드” 및 “실버” 서브타입 * Item 타입의 “포션” 및 “부스트” 서브타입 |
Quantity | Int | 구매자가 지급을 통해 받게 되는 아이템, 통화 등의 수량을 지정합니다. | * 1 * >25 * 100 |
Data | 이 필드는 코드에서 참조할 프로퍼티로 사용할 수 있습니다. | * UI 요소용 플래그 * 아이템 희귀도 |
참고: 단일 제품에 대한 여러 개의 지급을 추가할 수 있습니다.
PayoutDefinition 클래스에 대한 자세한 내용은 스크립팅 레퍼런스를 참조하십시오. 이 클래스를 이용하면 스크립트에 언제든지 지급 정보를 추가할 수 있습니다. 예제:
using UnityEngine.Purchasing;
new PayoutDefinition (PayoutType.Currency, "Gold", 100)
IAP 카탈로그는 인벤토리 관리자가 아니라 제품 카탈로그 사전 역할을 합니다. 구매한 콘텐츠 전달을 처리하는 코드는 여전히 구현해야 합니다.
기본적으로 Unity IAP는 제품이 모든 앱 스토어에서 동일한 식별자(위의 ID 필드에서 지정됨)를 사용한다고 가정합니다. Unity는 가능한 이렇게 하도록 권장합니다. 하지만 iOS 및 Mac 스토어 모두에 퍼블리시하는 경우(개발자가 두 플랫폼에서 동일한 ID를 사용할 수 없음)와 같이 동일한 식별자를 사용할 수 없을 때도 있습니다.
이러한 경우에는 필드를 오버라이드하여 크로스 플랫폼 ID와 다른 제품 식별자를 정확하게 지정해야 합니다.
이 작업은 다음과 같이 프로그래밍 방식으로 수행할 수 있습니다.
using UnityEngine;
using UnityEngine.Purchasing;
public class MyIAPManager {
public MyIAPManager () {
var builder = ConfigurationBuilder.Instance(StandardPurchasingModule.Instance());
builder.AddProduct("100_gold_coins", ProductType.Consumable, new IDs
{
{"100_gold_coins_google", GooglePlay.Name},
{"100_gold_coins_mac", MacAppStore.Name}
});
// Initialize Unity IAP...
}
}
이 예에서 제품 식별자는 Google Play의 경우 “100_gold_coins_google”이고, Apple App Store의 경우 “100_gold_coins_mac”입니다.
참고: 오버라이드는 Unity IAP가 앱 스토어와 커뮤니케이션할 때 사용하는 식별자만 변경합니다. API를 호출할 때는 여전히 제품의 크로스 플랫폼 식별자를 사용해야 합니다.
중요: 이 ID는 소문자, 숫자, 밑줄 또는 마침표만 포함할 수 있습니다.
가격 정보 또는 Google Play에서 만든 가격 템플릿용 ID를 제공합니다.
드롭다운 메뉴에서 가격 티어를 선택합니다. Unity는 미리 정의된 Apple 기준 가격을 지원하지만, 임의 값은 지원하지 않습니다.
__스크린샷을 선택__하여 업로드하십시오.
스크린샷 사양에 대한 내용은 Apple의 퍼블리셔 지원 문서를 참조하십시오.
구매 설정 빌더를 사용하여 제품 리스트를 프로그래밍 방식으로 선언할 수도 있습니다. 각 제품에 대해 고유한 크로스 스토어 Product ID 및 Product Type 을 제공해야 합니다.
using UnityEngine;
using UnityEngine.Purchasing;
public class MyIAPManager {
public MyIAPManager () {
var builder = ConfigurationBuilder.Instance(StandardPurchasingModule.Instance());
builder.AddProduct("100_gold_coins", ProductType.Consumable);
// Initialize Unity IAP...
}
}