From 3c2e68a6b8d47992ed8b236ba3711550de588b8b Mon Sep 17 00:00:00 2001 From: huyfei Date: Mon, 29 Jan 2024 14:42:07 +0800 Subject: [PATCH] =?UTF-8?q?update:=20=E6=9B=B4=E6=96=B0=20Product=20?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3,=20=E8=BF=94=E5=9B=9E=E6=9C=AC=E5=9C=B0?= =?UTF-8?q?=E5=8C=96=E4=BB=B7=E6=A0=BC=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Runtime/GuruIAP/Runtime/Code/IAPServiceBase.cs | 16 ++++++++++++++-- .../GuruIAP/Runtime/Code/Settings/ProductInfo.cs | 6 +++++- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/Runtime/GuruIAP/Runtime/Code/IAPServiceBase.cs b/Runtime/GuruIAP/Runtime/Code/IAPServiceBase.cs index 1d53465..847628f 100644 --- a/Runtime/GuruIAP/Runtime/Code/IAPServiceBase.cs +++ b/Runtime/GuruIAP/Runtime/Code/IAPServiceBase.cs @@ -210,7 +210,7 @@ namespace Guru if (_products.ContainsKey(item.definition.id)) { - _products[item.definition.id].Product = item; + _products[item.definition.id].SetProduct(item); } } @@ -586,7 +586,19 @@ namespace Guru // 失败原因 OnBuyFailed?.Invoke(info.Name, failureReason.ToString()); } - + + + /// + /// 获取商品的本地化价格字符串 + /// 如果商品不存在或者 IAP 尚未初始化完成则显示 "Loading" 字样 + /// + /// + /// + public string GetLocalizedPriceString(string productName) + { + return GetInfo(productName)?.LocalizedPriceString ?? "Loading"; + } + #endregion #region Log 输出 diff --git a/Runtime/GuruIAP/Runtime/Code/Settings/ProductInfo.cs b/Runtime/GuruIAP/Runtime/Code/Settings/ProductInfo.cs index 8ec4488..ed36f22 100644 --- a/Runtime/GuruIAP/Runtime/Code/Settings/ProductInfo.cs +++ b/Runtime/GuruIAP/Runtime/Code/Settings/ProductInfo.cs @@ -66,8 +66,11 @@ namespace Guru [Serializable] public partial class ProductInfo { + private Product _product; public ProductSetting Setting; - public Product Product; + public Product Product => _product; + + public void SetProduct(Product product) => _product = product; public string Name => Setting.ProductName; public string Id => Product.definition.id; @@ -76,6 +79,7 @@ namespace Guru public string Category => Setting.Category; public string Type => Setting.Type == ProductType.Subscription ? "subscription" : "product"; public bool IsFree => Setting.IsFree; + public string LocalizedPriceString => Product?.metadata.localizedPriceString ?? $"$ {Setting.Price}"; }