목차

반응형

1. 개요

몰랐는데 사실 유니티 IAP(in app purchase) 상품에 대한 국가별 화폐 단위 및 가격을 하드코딩 없이 손쉽게 불러오고 표출하는 방법이 있었다.

따라서 유니티 클라이언트에 상품별 결제 가격에 대한 정보를 전혀 기입할 필요가 없다!

나도 이 기능은 나중에야 알았다. 이런...!

 

2. 원리

1. IAP 상품 정보 등록 및 Initialize

2. product id로 상품 정보 단일 조회

3. 상품 정보에 내재되어있는 로컬 가격과 로컬 화폐단위 획득 및 표출

 

 

3. 코드

1번은 너무 흔하디 흔하니까 스킵하도록 한다. IAP에 대한 코드가 전혀 없다면 아래 페이지를 참고하자

learn.unity.com/tutorial/unity-iap#5c7f8528edbc2a002053b46e

 

Unity IAP - Unity Learn

Unity IAP (In App Purchases) lets you sell a variety of items directly within your free or paid game including premium content, virtual goods and subscriptions. In this tutorial, we are going to look at how to add IAP to an existing game project. This tuto

learn.unity.com

 

 

2. product id로 상품 정보 단일 조회

일반적인 IAP 스크립트라면 라면 IStoreController 타입의 변수 m_StoreController를 가지고 있을 것이다.

해당 변수로부터 product id를 통하여 원하는 product를 리턴해주는 함수를 하나 만들자

public Product GetProduct(string _productId)
{
	return m_StoreController.products.WithID(_productId);
}

 

 

3. 상품 정보에 내재되어있는 로컬 가격과 로컬 화폐단위 획득 및 표출

if (shopItem.ItemType == ItemType.Package)
{
	textPPrice.text = string.Format("{0} {1}", IAP.instance.GetProduct(shopItem.ProductId).metadata.localizedPrice, IAP.instance.GetProduct(shopItem.ProductId).metadata.isoCurrencyCode);
}

위의 코드에 대한 부가설명을 하겠다.

위의 코드는 상품 UI에 부착되어서 textPPrice라는 text 컴포넌트의 텍스트를 지정해주는 부분이다.

상품 UI는 최초에 초기화 단계에서 표출해주는 상품에 대한 product id를 가지고 있어서 위에서 IAP에 만들어뒀던 product 조회 함수를 통해 플레이스토어 및 앱스토어에 등록된 상품에 대한 정보를 가져올 수 있다.

shopItem.ProductId로 조회한 product의 metadata.localizedPrice는 현지 화폐 단위의 가격을 의미하고 metadata.isoCurrencyCode는 화폐 단위를 의미한다.

예를 들어 10000원짜리 상품을 한국 유저의 경우 text에는 10000 KRW라고 표기된다.

 

4. 특이사항

해당 강좌의 전제 조건은 이미 플레이스토어 및 앱스토어에 상품 정보가 등록되어있다고 가정하에 진행했다. 상품 정보를 등록 안 하면 데이터가 안 나오는 게 당연하다.

에디터에서는 전부다 0.01 USD라고 표기된다. 에디터에서만 그렇게 표기되니까 당황하지말고 디바이스에서 테스트해보자

반응형