스토어에서는 일반적인 크로스 플랫폼 구매 과정에 해당하지 않는 특수 기능을 제공합니다. 이러한 특수 기능은 Unity IAP가 성공적으로 초기화되면 애플리케이션에 제공되는 IExtensionProvider
를 통해 액세스할 수 있습니다.
확장 기능을 사용하더라도 플랫폼 의존형 컴파일을 사용할 필요는 없습니다. 각 확장 기능은 해당 기능이 지원되지 않는 플랫폼에서 실행되는 경우 사용되는 거짓 무연산 과정을 포함하기 때문입니다.
예를 들어, 아래의 스니핏은 Apple 서버에서 새로 고쳐진 앱 영수증을 가져오기 위해 Apple이 사용하는 RefreshReceipt
메커니즘을 필요로 합니다. 이 스니핏은 모든 Unity IAP 플랫폼에서 컴파일할 수 있지만, Android와 같이 Apple이 아닌 플랫폼에서 실행하는 경우 아무 영향도 주지 않습니다. 제공된 람다가 호출되지 않기 때문입니다.
/// <summary>
/// Called when Unity IAP is ready to make purchases.
/// </summary>
public void OnInitialized (IStoreController controller, IExtensionProvider extensions)
{
extensions.GetExtension<IAppleExtensions> ().RefreshAppReceipt (result => {
if (result) {
// Refresh finished successfully.
} else {
// Refresh failed.
}
});
}