반응형
- 코드 작성
using UnityEngine;
using UnityEngine.Purchasing;
public class CurrencyUnitsFetcher : MonoBehaviour, IStoreListener
{
private IStoreController storeController;
void Start()
{
InitializePurchasing();
}
private void InitializePurchasing()
{
ConfigurationBuilder builder = ConfigurationBuilder.Instance(StandardPurchasingModule.Instance());
// 여기에 제품 ID를 추가하세요
builder.AddProduct("your_product_id", ProductType.Consumable);
UnityPurchasing.Initialize(this, builder);
}
public void OnInitialized(IStoreController controller, IExtensionProvider extensions)
{
storeController = controller;
}
public void OnInitializeFailed(InitializationFailureReason error)
{
Debug.LogError("Unity IAP 초기화 실패: " + error);
}
public void OnPurchaseFailed(Product product, PurchaseFailureReason failureReason)
{
Debug.LogError("제품 " + product.definition.id + " 구매 실패: " + failureReason);
}
public void OnPurchaseComplete(Product product)
{
// 구매가 완료되면 국가별로 통화 단위를 가져올 수 있습니다.
string countryCode = GetCountryCode(); // 국가 코드를 가져오는 메서드를 구현하세요
string currencySymbol = GetCurrencySymbol(product.metadata, countryCode);
Debug.Log("제품 " + product.definition.id + "의 통화 단위: " + currencySymbol);
}
private string GetCurrencySymbol(ProductMetadata metadata, string countryCode)
{
// 국가 코드를 기반으로 통화 기호를 가져옵니다.
foreach (var localizedPrice in metadata.localizedPriceString.Split('\n'))
{
string[] parts = localizedPrice.Split(' ');
if (parts.Length == 2 && parts[0] == countryCode)
{
return parts[1];
}
}
return "알 수 없음";
}
// 사용자 위치를 기반으로 국가 코드를 가져오는 메서드를 구현하세요
private string GetCountryCode()
{
// 귀하의 요구 사항에 기반하여이 메서드를 구현해야합니다.
// 장치의 로케일 또는 기타 방법을 사용하여 사용자의 위치를 결정할 수 있습니다.
// 간단함을 위해이 예제는 더미 국가 코드 "US"를 반환합니다.
return "US";
}
// 나머지 클래스 구현 부분...
}
반응형