Skip to content

GameSystemUI.ShopSystem ​

OrderQueryResult 双端 ​

命名空间 GameSystemUI.ShopSystem

csharp
public enum OrderQueryResult

订单查询结果枚举

枚举值 ​

  • Success — 查询成功
  • QueryFailed — 查询失败
  • SystemError — 系统错误

OrderRewardRecord 双端 ​

命名空间 GameSystemUI.ShopSystem

csharp
public class OrderRewardRecord

订单奖励记录

构造函数 ​

OrderRewardRecord 双端 ​

csharp
public OrderRewardRecord()

属性 ​

ResourceId 双端 ​

csharp
public string ResourceId { get; set; }

资源ID(GameDataLobbyResource的ID)

ResourceCloudKey 双端 ​

csharp
public string ResourceCloudKey { get; set; }

资源云变量Key

Amount 双端 ​

csharp
public long Amount { get; set; }

奖励数量

PeriodClaimRequest 双端 ​

命名空间 GameSystemUI.ShopSystem

csharp
public class PeriodClaimRequest

周期商品领取请求(客户端 -> 服务端)

构造函数 ​

PeriodClaimRequest 双端 ​

csharp
public PeriodClaimRequest()

属性 ​

RequestId 双端 ​

csharp
public Guid RequestId { get; set; }

请求ID(用于匹配响应)

ItemId 双端 ​

csharp
public string ItemId { get; set; }

商品ID

PeriodClaimResponse 双端 ​

命名空间 GameSystemUI.ShopSystem

csharp
public class PeriodClaimResponse

周期商品领取响应(服务端 -> 客户端)

构造函数 ​

PeriodClaimResponse 双端 ​

csharp
public PeriodClaimResponse()

属性 ​

RequestId 双端 ​

csharp
public Guid RequestId { get; set; }

请求ID(用于匹配请求)

ItemId 双端 ​

csharp
public string ItemId { get; set; }

商品ID

Result 双端 ​

csharp
public PeriodClaimResult Result { get; set; }

领取结果

Timestamp 双端 ​

csharp
public DateTime Timestamp { get; set; }

时间戳

PeriodClaimResult 双端 ​

命名空间 GameSystemUI.ShopSystem

csharp
public enum PeriodClaimResult

周期商品领取结果枚举

枚举值 ​

  • Success = 0 — 领取成功
  • ItemNotFound = 1 — 商品不存在
  • NotPeriodGoods = 2 — 不是周期商品
  • NotPurchased = 3 — 未购买/未激活
  • Expired = 4 — 有效期已过
  • AlreadyClaimed = 5 — 本周期已领取
  • Processing = 6 — 正在处理中(有其他领取请求正在处理)
  • SystemError = 99 — 系统错误

PurchaseResult 双端 ​

命名空间 GameSystemUI.ShopSystem

csharp
public enum PurchaseResult

购买结果枚举(两端通用,用于替代 ErrorMessage 字符串)

枚举值 ​

  • Success = 0 — 购买成功
  • InsufficientResource = 1 — 资源不足
  • ItemNotFound = 2 — 商品不存在
  • InvalidItemConfig = 3 — 商品配置无效(缺少价格或资源Key配置)
  • InvalidQuantity = 7 — 购买数量无效(小于等于0或超过单次上限)
  • PurchaseLimitReached = 4 — 已达到限购上限
  • SoldOut = 5 — 商品已售罄
  • Locked = 6 — 商品已锁定
  • OrderProcessing = 10 — 有订单正在处理中
  • QueryResourceFailed = 11 — 查询资源失败
  • QueryPurchaseLimitFailed = 15 — 查询限购数据失败
  • TransactionFailed = 12 — 事务执行失败
  • ConcurrentInsufficientResource = 13 — 并发扣款导致资源不足
  • ResourceAcquireRejected = 14 — 资源获取回调拒绝(OnAcquire 返回 false)
  • SystemError = 99 — 系统错误

ResourceSync 双端 ​

命名空间 GameSystemUI.ShopSystem

csharp
public class ResourceSync

资源同步消息(服务端 -> 客户端) 用于查询响应和主动推送

构造函数 ​

ResourceSync 双端 ​

csharp
public ResourceSync()

属性 ​

Reason 双端 ​

csharp
public SyncReason Reason { get; set; }

同步原因

Balances 双端 ​

csharp
public Dictionary<string, long> Balances { get; set; }

资源余额字典(Key为资源ID,即GameDataLobbyResource的ID)

Timestamp 双端 ​

csharp
public DateTime Timestamp { get; set; }

时间戳

ShopItem 双端 ​

命名空间 GameSystemUI.ShopSystem

csharp
public class ShopItem

商品运行时数据

构造函数 ​

ShopItem 双端 ​

csharp
public ShopItem()

属性 ​

csharp
public IGameLink<GameDataShopItem>? Link { get; set; }

商品 Link(唯一标识)

ItemId 双端 ​

csharp
public string ItemId { get; }

商品ID(从 Link 获取)

ItemName 双端 ​

csharp
public string ItemName { get; set; }

商品名称

Cost 双端 ​

csharp
public IGameLink<GameDataResourceAmount>? Cost { get; set; }

购买消耗的资源配置

ImagePath 双端 ​

csharp
public Icon ImagePath { get; set; }

商品图片路径

Description 双端 ​

csharp
public string? Description { get; set; }

商品描述

PurchaseLimit 双端 ​

csharp
public int PurchaseLimit { get; set; }

限购数量(0表示不限购)

PurchasedCount 双端 ​

csharp
public int PurchasedCount { get; set; }

已购买数量

TagText 双端 ​

csharp
public string? TagText { get; set; }

标签文本(如"剩余99天")

Status 双端 ​

csharp
public ShopItemStatus Status { get; set; }

商品状态

LockHint 双端 ​

csharp
public string? LockHint { get; set; }

锁定提示(当状态为Locked时显示)

CanPurchase 双端 ​

csharp
public bool CanPurchase { get; }

是否可购买

方法 ​

FromGameData 双端 ​

csharp
public static ShopItem FromGameData(IGameLink<GameDataShopItem> link)

从配置数据创建商品实例

ShopItemsQueryRequest 双端 ​

命名空间 GameSystemUI.ShopSystem

csharp
public class ShopItemsQueryRequest

商品查询请求(客户端 -> 服务端)

构造函数 ​

ShopItemsQueryRequest 双端 ​

csharp
public ShopItemsQueryRequest()

属性 ​

ItemIds 双端 ​

csharp
public List<string> ItemIds { get; set; }

要查询的商品ID列表(为空则查询所有)

ShopItemsSync 双端 ​

命名空间 GameSystemUI.ShopSystem

csharp
public class ShopItemsSync

商品状态同步消息(服务端 -> 客户端) 用于查询响应和主动推送

构造函数 ​

ShopItemsSync 双端 ​

csharp
public ShopItemsSync()

属性 ​

Reason 双端 ​

csharp
public SyncReason Reason { get; set; }

同步原因

Items 双端 ​

csharp
public List<ShopItemState> Items { get; set; }

商品状态列表

Timestamp 双端 ​

csharp
public DateTime Timestamp { get; set; }

时间戳

ShopItemState 双端 ​

命名空间 GameSystemUI.ShopSystem

csharp
public class ShopItemState

商品状态(运行时数据)

构造函数 ​

ShopItemState 双端 ​

csharp
public ShopItemState()

属性 ​

ItemId 双端 ​

csharp
public string ItemId { get; set; }

商品ID

PurchasedCount 双端 ​

csharp
public int PurchasedCount { get; set; }

已购买数量

CanPurchase 双端 ​

csharp
public bool CanPurchase { get; set; }

是否可购买

CanClaim 双端 ​

csharp
public bool CanClaim { get; set; }

是否可领取(有效期内且本周期未领取)

EndTime 双端 ​

csharp
public long EndTime { get; set; }

有效期结束时间(UTC时间戳,秒) 0=不适用/未购买,>0=有效期结束时间

ShopItemStatus 双端 ​

命名空间 GameSystemUI.ShopSystem

csharp
public enum ShopItemStatus

商品状态枚举

枚举值 ​

  • Available — 可购买
  • SoldOut — 已售罄
  • Locked — 已锁定

ShopOrderQueryRequest 双端 ​

命名空间 GameSystemUI.ShopSystem

csharp
public class ShopOrderQueryRequest

订单查询请求(客户端 -> 服务端)

构造函数 ​

ShopOrderQueryRequest 双端 ​

csharp
public ShopOrderQueryRequest()

属性 ​

MaxCount 双端 ​

csharp
public int MaxCount { get; set; }

最大返回数量(默认50)

ShopOrderQueryResponse 双端 ​

命名空间 GameSystemUI.ShopSystem

csharp
public class ShopOrderQueryResponse

订单查询响应(服务端 -> 客户端)

构造函数 ​

ShopOrderQueryResponse 双端 ​

csharp
public ShopOrderQueryResponse()

属性 ​

Result 双端 ​

csharp
public OrderQueryResult Result { get; set; }

查询结果

Orders 双端 ​

csharp
public List<ShopOrderRecord> Orders { get; set; }

订单列表

ShopOrderRecord 双端 ​

命名空间 GameSystemUI.ShopSystem

csharp
public class ShopOrderRecord

订单记录(存储在云变量中)

构造函数 ​

ShopOrderRecord 双端 ​

csharp
public ShopOrderRecord()

属性 ​

OrderId 双端 ​

csharp
public long OrderId { get; set; }

订单ID(全局唯一,由云变量系统生成)

ItemId 双端 ​

csharp
public string ItemId { get; set; }

商品ID

Quantity 双端 ​

csharp
public int Quantity { get; set; }

购买数量

ResourceId 双端 ​

csharp
public string ResourceId { get; set; }

消耗的资源ID(GameDataLobbyResource的ID)

ResourceCloudKey 双端 ​

csharp
public string ResourceCloudKey { get; set; }

消耗的资源云变量Key

IsPremiumCurrency 双端 ​

csharp
public bool IsPremiumCurrency { get; set; }

消耗的资源是否为真实货币

TotalCost 双端 ​

csharp
public long TotalCost { get; set; }

总花费

IsPlatformPayment 双端 ​

csharp
public bool IsPlatformPayment { get; set; }

是否由平台支付直接发货产生

PlatformOrderId 双端 ​

csharp
public string PlatformOrderId { get; set; }

平台支付订单号(仅平台支付直发货订单有值)

PlatformPaidAmount 双端 ​

csharp
public long PlatformPaidAmount { get; set; }

平台实际支付金额(星火币)

Timestamp 双端 ​

csharp
public DateTime Timestamp { get; set; }

购买时间

RemainingPurchaseLimit 双端 ​

csharp
public int RemainingPurchaseLimit { get; set; }

购买后剩余限购次数(0表示无限购或已用完)

TotalPurchaseLimit 双端 ​

csharp
public int TotalPurchaseLimit { get; set; }

总限购次数(0表示无限购)

PurchaseLimitResetType 双端 ​

csharp
public PurchaseLimitResetType PurchaseLimitResetType { get; set; }

购买时的限购重置周期

Rewards 双端 ​

csharp
public List<OrderRewardRecord> Rewards { get; set; }

购买时应获得的奖励列表

ShopPurchaseRequest 双端 ​

命名空间 GameSystemUI.ShopSystem

csharp
public class ShopPurchaseRequest

购买请求消息(客户端 -> 服务端)

构造函数 ​

ShopPurchaseRequest 双端 ​

csharp
public ShopPurchaseRequest()

属性 ​

RequestId 双端 ​

csharp
public Guid RequestId { get; set; }

请求ID(用于匹配响应)

ItemId 双端 ​

csharp
public string ItemId { get; set; }

商品ID

Quantity 双端 ​

csharp
public int Quantity { get; set; }

购买数量

ShopPurchaseResponse 双端 ​

命名空间 GameSystemUI.ShopSystem

csharp
public class ShopPurchaseResponse

购买响应消息(服务端 -> 客户端)

构造函数 ​

ShopPurchaseResponse 双端 ​

csharp
public ShopPurchaseResponse()

属性 ​

RequestId 双端 ​

csharp
public Guid RequestId { get; set; }

请求ID(用于匹配请求)

Result 双端 ​

csharp
public PurchaseResult Result { get; set; }

购买结果

ItemId 双端 ​

csharp
public string ItemId { get; set; }

商品ID

Quantity 双端 ​

csharp
public int Quantity { get; set; }

购买数量

Timestamp 双端 ​

csharp
public DateTime Timestamp { get; set; }

时间戳

PlatformOrderId 双端 ​

csharp
public string PlatformOrderId { get; set; }

平台支付订单号。普通项目货币购买为空,平台成功通知按此字段去重。

ShopSystemClient 仅客户端 ​

命名空间 GameSystemUI.ShopSystem

csharp
public static class ShopSystemClient

商店系统客户端 - 处理购买请求和响应 所有操作均为非阻塞,通过事件接收结果

属性 ​

IsPurchasing 仅客户端 ​

csharp
public static bool IsPurchasing { get; }

检查是否有购买请求正在处理中

IsClaiming 仅客户端 ​

csharp
public static bool IsClaiming { get; }

检查是否有周期领取请求正在处理中

方法 ​

Purchase 仅客户端 ​

csharp
public static bool Purchase(string itemId, int quantity = 1)

购买商品(非阻塞,结果通过 OnPurchaseSuccess/OnPurchaseFailed 事件返回)

  • itemId — 商品ID
  • quantity — 购买数量

返回: 是否成功发送请求

QueryItems 仅客户端 ​

csharp
public static void QueryItems(List<string> itemIds)

查询商品状态(非阻塞,结果通过 OnItemsSync 事件返回)

  • itemIds — 要查询的商品ID列表

QueryResource 仅客户端 ​

csharp
public static void QueryResource(List<string> resourceIds)

查询资源余额(非阻塞,结果通过 OnResourceSync 事件返回)

  • resourceIds — 要查询的资源ID列表(GameDataLobbyResource的ID)

RefreshShop 仅客户端 ​

csharp
public static void RefreshShop(IGameLink<GameDataShop>? shopLink)

刷新指定商店的数据(商品状态和资源余额,非阻塞)

  • shopLink — 商店配置链接

QueryOrders 仅客户端 ​

csharp
public static void QueryOrders(int maxCount = 50)

查询订单历史(非阻塞,结果通过 OnOrdersReceived 事件返回)

  • maxCount — 最大返回数量(默认50)

ClearPurchaseLock 仅客户端 ​

csharp
public static void ClearPurchaseLock()

手动清理购买状态锁定(仅在异常情况下使用,如客户端检测到状态不一致)

GetCachedItemState 仅客户端 ​

csharp
public static ShopItemState? GetCachedItemState(string itemId)

获取缓存的商品状态

GetCachedResourceBalance 仅客户端 ​

csharp
public static long GetCachedResourceBalance(string resourceId)

获取缓存的资源余额

  • resourceId — 资源ID(GameDataLobbyResource的ID)

GetAllCachedResourceBalances 仅客户端 ​

csharp
public static IReadOnlyDictionary<string, long> GetAllCachedResourceBalances()

获取所有缓存的资源余额(Key为资源ID)

CanClaimPeriodReward 仅客户端 ​

csharp
public static bool CanClaimPeriodReward(string itemId)

检查周期商品是否可领取

GetEndTime 仅客户端 ​

csharp
public static long GetEndTime(string itemId)

获取周期商品有效期结束时间(UTC时间戳,秒)

GetRemainingSeconds 仅客户端 ​

csharp
public static long GetRemainingSeconds(string itemId)

获取周期商品剩余秒数(-1=不适用/已过期)

IsPeriodGoodsActive 仅客户端 ​

csharp
public static bool IsPeriodGoodsActive(string itemId)

检查周期商品是否在有效期内

ClaimPeriodReward 仅客户端 ​

csharp
public static bool ClaimPeriodReward(string itemId)

领取周期商品奖励(非阻塞,结果通过 OnPeriodClaimSuccess/OnPeriodClaimFailed 事件返回)

  • itemId — 商品ID

返回: 是否成功发送请求

ClearClaimLock 仅客户端 ​

csharp
public static void ClearClaimLock()

手动清除领取锁定(紧急情况使用)

GetResultMessage 仅客户端 ​

csharp
public static string GetResultMessage(PurchaseResult result)

获取购买结果的本地化消息

GetClaimResultMessage 仅客户端 ​

csharp
public static string GetClaimResultMessage(PeriodClaimResult result)

获取周期商品领取结果的本地化消息

事件 ​

OnPurchaseSuccess 仅客户端 ​

csharp
public static event EventHandler<ShopPurchaseResponse>? OnPurchaseSuccess

购买成功事件

OnPurchaseFailed 仅客户端 ​

csharp
public static event EventHandler<ShopPurchaseResponse>? OnPurchaseFailed

购买失败事件

OnItemsSync 仅客户端 ​

csharp
public static event EventHandler<ShopItemsSync>? OnItemsSync

商品状态同步事件(查询响应或推送都会触发)

OnPeriodClaimAvailable 仅客户端 ​

csharp
public static event EventHandler<ShopItemState>? OnPeriodClaimAvailable

周期商品可领取事件(每个可领取商品触发一次)

OnResourceSync 仅客户端 ​

csharp
public static event EventHandler<ResourceSync>? OnResourceSync

资源同步事件(查询响应或推送都会触发)

OnOrdersReceived 仅客户端 ​

csharp
public static event EventHandler<ShopOrderQueryResponse>? OnOrdersReceived

订单查询响应事件

OnPeriodClaimSuccess 仅客户端 ​

csharp
public static event EventHandler<PeriodClaimResponse>? OnPeriodClaimSuccess

周期商品领取成功事件

OnPeriodClaimFailed 仅客户端 ​

csharp
public static event EventHandler<PeriodClaimResponse>? OnPeriodClaimFailed

周期商品领取失败事件

ShopSystemServer 仅服务端 ​

命名空间 GameSystemUI.ShopSystem

csharp
public static class ShopSystemServer

商店系统服务端 - 处理购买逻辑和数据验证(非阻塞)

方法 ​

PushItems 仅服务端 ​

csharp
public static void PushItems(Player player, SyncReason reason, List<ShopItemState> items)

向指定玩家推送商品状态变化

  • player — 目标玩家
  • reason — 同步原因
  • items — 商品状态列表

PushResource 仅服务端 ​

csharp
public static void PushResource(Player player, Dictionary<string, long> balances)

向指定玩家推送资源变化

  • player — 目标玩家
  • balances — 资源余额(Key为资源ID,即GameDataLobbyResource的ID)

BroadcastItems 仅服务端 ​

csharp
public static void BroadcastItems(SyncReason reason, List<ShopItemState> items)

向所有玩家广播商品状态变化

  • reason — 同步原因
  • items — 商品状态列表

PushPurchaseLimitReset 仅服务端 ​

csharp
public static void PushPurchaseLimitReset(Player player, List<string> resetItemIds)

向指定玩家推送限购重置通知

  • player — 目标玩家
  • resetItemIds — 重置的商品ID列表

CleanupOldOrdersAsync 仅服务端 ​

csharp
public static Task<int> CleanupOldOrdersAsync(long userId, int maxCount)

清理超出上限的旧订单(保留最新的 maxCount 条) 可用于手动清理订单记录

  • userId — 用户ID
  • maxCount — 保留的最大订单数量

返回: 删除的订单数量

DeleteOldestOrdersAsync 仅服务端 ​

csharp
public static Task<int> DeleteOldestOrdersAsync(long userId, int count)

删除指定数量的最旧订单

  • userId — 用户ID
  • count — 要删除的订单数量

返回: 实际删除的订单数量

事件 ​

OnPurchaseSuccess 仅服务端 ​

csharp
public static event EventHandler<(Player player, string itemId, int quantity)>? OnPurchaseSuccess

购买成功事件(可用于日志记录、统计及局内状态刷新)。 平台订单按订单号持久化去重;这是发货提交后的通知, 需要原子持久化的奖励应通过商品 Rewards / 资源 OnAcquire 写入发货事务。

OnPurchaseFailed 仅服务端 ​

csharp
public static event EventHandler<(Player player, string itemId, PurchaseResult reason)>? OnPurchaseFailed

购买失败事件

OnPeriodClaimSuccess 仅服务端 ​

csharp
public static event EventHandler<(Player player, string itemId)>? OnPeriodClaimSuccess

周期商品领取成功事件

OnPeriodClaimFailed 仅服务端 ​

csharp
public static event EventHandler<(Player player, string itemId, PeriodClaimResult reason)>? OnPeriodClaimFailed

周期商品领取失败事件

SyncReason 双端 ​

命名空间 GameSystemUI.ShopSystem

csharp
public enum SyncReason

同步原因枚举

枚举值 ​

  • QueryResponse — 查询响应
  • ItemStateChanged — 商品状态变化
  • ItemAdded — 商品上架
  • ItemRemoved — 商品下架
  • EventStarted — 活动开始
  • EventEnded — 活动结束
  • PurchaseLimitReset — 限购重置
  • ResourceChanged — 资源变化(奖励、GM操作等)
  • PurchaseSuccess — 购买成功(资源和商品状态更新)
  • PeriodClaimReminder — 周期商品可领取提醒(登录时推送)

GameDataPeriodShopItem 双端 ​

命名空间 GameSystemUI.ShopSystem.Data

csharp
public class GameDataPeriodShopItem : GameDataShopItem, IGameData<GameDataPeriodShopItem>, IGameData

周期商品配置数据(月卡、周卡等) 继承自 GameDataShopItem,额外支持有效期和周期性领取奖励

构造函数 ​

GameDataPeriodShopItem 双端 ​

csharp
public GameDataPeriodShopItem(GameLink<GameDataShopItem, GameDataPeriodShopItem> link)

GameDataPeriodShopItem 双端 ​

csharp
public GameDataPeriodShopItem(IGameLink<GameDataPeriodShopItem> link)

属性 ​

ValidityPeriod 双端 ​

csharp
public int ValidityPeriod { get; set; }

有效期天数(如30=月卡)

PeriodRewards 双端 ​

csharp
public List<IGameLink<GameDataResourceAmount>> PeriodRewards { get; set; }

每日/每周期可领取的奖励列表 注:购买时立即获得的奖励使用基类的 Rewards 字段

ClaimPeriodType 双端 ​

csharp
public PurchaseLimitResetType ClaimPeriodType { get; set; }

领取周期类型(默认每日)

  • Daily: 每天可领取一次
  • Weekly: 每周可领取一次
  • Monthly: 每月可领取一次
csharp
public new IGameLink<GameDataPeriodShopItem> Link { get; }

GameDataShop 双端 ​

命名空间 GameSystemUI.ShopSystem.Data

csharp
public class GameDataShop : GameDataCategory<GameDataShop>, IGameDataCategory<GameDataShop>, IGameData<GameDataShop>, IGameData

商店配置

构造函数 ​

GameDataShop 双端 ​

csharp
public GameDataShop(GameLink<GameDataShop, GameDataShop> link)

GameDataShop 双端 ​

csharp
public GameDataShop(IGameLink<GameDataShop> link)

属性 ​

ShopName 双端 ​

csharp
public string ShopName { get; set; }

商店名称

Description 双端 ​

csharp
public string? Description { get; set; }

商店描述

IconPath 双端 ​

csharp
public Icon? IconPath { get; set; }

商店图标路径(可选)

Categories 双端 ​

csharp
public List<IGameLink<GameDataShopCategory>> Categories { get; set; }

商店分类列表

Resources 双端 ​

csharp
public List<IGameLink<GameDataLobbyResource>> Resources { get; set; }

支持的资源类型列表

GameDataShopCategory 双端 ​

命名空间 GameSystemUI.ShopSystem.Data

csharp
public class GameDataShopCategory : GameDataCategory<GameDataShopCategory>, IGameDataCategory<GameDataShopCategory>, IGameData<GameDataShopCategory>, IGameData

商店分类配置

构造函数 ​

GameDataShopCategory 双端 ​

csharp
public GameDataShopCategory(GameLink<GameDataShopCategory, GameDataShopCategory> link)

GameDataShopCategory 双端 ​

csharp
public GameDataShopCategory(IGameLink<GameDataShopCategory> link)

属性 ​

CategoryName 双端 ​

csharp
public string CategoryName { get; set; }

分类名称

IconPath 双端 ​

csharp
public Icon? IconPath { get; set; }

分类图标路径(可选)

Items 双端 ​

csharp
public List<IGameLink<GameDataShopItem>> Items { get; set; }

分类下的商品列表(顺序即为显示顺序)

GameDataShopItem 双端 ​

命名空间 GameSystemUI.ShopSystem.Data

csharp
public class GameDataShopItem : GameDataCategory<GameDataShopItem>, IGameDataCategory<GameDataShopItem>, IGameData<GameDataShopItem>, IGameData

商品配置数据

构造函数 ​

GameDataShopItem 双端 ​

csharp
public GameDataShopItem(GameLink<GameDataShopItem, GameDataShopItem> link)

GameDataShopItem 双端 ​

csharp
public GameDataShopItem(IGameLink<GameDataShopItem> link)

属性 ​

ItemName 双端 ​

csharp
public string ItemName { get; set; }

商品名称

ImagePath 双端 ​

csharp
public Icon ImagePath { get; set; }

商品图片路径

Description 双端 ​

csharp
public string? Description { get; set; }

商品描述

Cost 双端 ​

csharp
public IGameLink<GameDataResourceAmount>? Cost { get; set; }

购买消耗的资源

Rewards 双端 ​

csharp
public List<IGameLink<GameDataResourceAmount>> Rewards { get; set; }

购买获得的资源列表

PurchaseLimit 双端 ​

csharp
public int PurchaseLimit { get; set; }

限购数量(0表示不限购)

PurchaseLimitResetType 双端 ​

csharp
public PurchaseLimitResetType PurchaseLimitResetType { get; set; }

限购重置周期(默认不重置)

ResetInterval 双端 ​

csharp
public int ResetInterval { get; set; }

重置间隔(根据ResetType含义不同):

  • Daily: 每X天重置(1=每天,2=每2天)
  • Weekly: 每X周重置(1=每周,2=每2周)
  • Monthly: 每X月重置(1=每月,2=每2月)

ResetDayOfWeek 双端 ​

csharp
public DayOfWeek ResetDayOfWeek { get; set; }

每周重置时的星期几(仅Weekly类型有效)

MaxPurchasePerTransaction 双端 ​

csharp
public int MaxPurchasePerTransaction { get; set; }

单次购买上限(每次弹窗购买时最大数量,默认999)

PurchaseLimitResetType 双端 ​

命名空间 GameSystemUI.ShopSystem.Data

csharp
public enum PurchaseLimitResetType

限购重置周期类型

枚举值 ​

  • None — 不重置(永久限购)
  • Daily — 每日重置(每天0点)
  • Weekly — 每周重置(每周一0点)
  • Monthly — 每月重置(每月1日0点)
  • Yearly — 每年重置(每年1月1日0点)