赞
踩
看了一下Epic商店的插件,价格都比较贵,当然,插件贵有贵的道理:
优秀的插件应该具备上述的三种特质,所以开发一款插件很考验设计和实现能力,在设计上应该考虑到解耦,易用,扩展性,实现的时候要充分利用接口的特性.
这个专栏就是针对插件开发来写的,在开发商店和背包的插件过程中,笔者积累了不少心得,尤其是关于UE5 C++的使用,关于接口的实战应用,代理声明,绑定和触发,消息监听,广播和注销,ListView的使用等等,大量的干货!
商店背包插件1.0
图片看不清的话,可以跳转到源文件:游戏商店和背包设计.
游戏商店和背包插件作为第一个案例,实现的功能如下:
这个大纲和上面的思维导图是一样的,只是形式不同,思维导图更加容易看清楚结构,开发大纲更容易根据大纲来逐项完成开发.
●物品:Item ●物品配置:FItemTable ●编号:ID ●价格:Price ●库存:Stock ●物品定义接口:IItemDefinitionInterface ●显示名称:DisplayName ●物品类型:FGameplayTagContainer ●显示图标:FSlateBrush ●简介:Introduction ●最大数量:MaxCount ●可叠加数量:Overlap ●物品重量:Gravity ●子类数组:Children ●标签栈:TMap<FGameplayTag, int32> ●耐久度:Durability ●子弹数量:Ammo ●可扩展 ●物品实例:UItemInstance ●全局编号:GUID 在生成实例时赋予实例全局唯一编号FGuid ●物品编号:ItemID ●实例索引:Index ●物品定义:ItemDefinition ●标签栈:FGameplayTagStackContainer ●标签:FGameplayTag ●栈数:StackCount ●快捷栏配置:FQuickBarConfiguration ●等级:Level ●容量:Volume ●负重:Gravity ●升级消耗:UpgradeCost ●背包数据结构:Inventory ●背包配置:FInventoryConfiguration ●等级:Level ●容量:Volume ●负重:Gravity ●升级消耗:UpgradeCost ●背包列表:FInventoryList ●条目:Entries ●条目结构:FInventoryEntry ●物品实例:UItemInstance ●数量:StackCount ●所属组件:OwnerComponent ●操作:Actions ●增:AddEntry ●删:RemoveEntry ●改:UpdateEntry ●查:FindEntry ●交换:Swap ●广播:Broadcast ●同步序列化:FFastArraySerializer
●游戏实例子系统:UGameInstanceSubsystem ●消息:MessageSubsystem ●监听消息:RegisterListener ●广播消息:BroadcastMessage ●注销消息监听:Unregister ●商店:ShopSubsystem ●背包配置 ●读取 ●缓存 ●查询 ●快捷栏配置 ●读取 ●缓存 ●查询 ●物品配置 ●读取物品配置表:ReadDataTable ●物品数据表缓存:SlotTablePtr ●根据编号获取物品数据:GetItemDataByID ●物品数据数组缓存:CacheSlotTables ●交易 ●交易监听句柄:TransactionListenerHandle ●交易处理:OnNotificationTransactionMessage
●管理组件基类:UActorComponentBase ●钱包:UWalletActorComponent ●货币:Gold ●支付能力:CanAfford ●交易:Transaction ●商店:UShopActorComponent ●商店视觉实例:ShopPtr ●显示商店:ShowShop ●变更店主:ChangeOwner ●背包:UInventoryManagerActorComponent ●背包配置:FInventoryConfiguration ●等级:Level ●容量:Volume ●负重:Gravity ●升级消耗:UpgradeCost ●物品列表:FInventoryList ●目录:Categories ●标签:CategoryStatTags ●实例:CategoryArray ●升级窗口:UpgradeWindow ●操作:Actions ●增:AddItem ●删:RemoveItem ●改:UpdateItem ●查:FindItem ●交换:SwapItem ●同步:ReplicateSubobjects ●快捷栏:UQuickBarComponent ●快捷栏配置:FQuickBarConfiguration ●等级:Level ●容量:Volume ●负重:Gravity ●升级消耗:UpgradeCost ●栏位:Slots ●激活的索引:ActiveSlotIndex ●操作:Actions ●增:AddItem ●删:RemoveItem ●改:UpdateItem ●查:FindItem ●装备:Equip ●卸装:UnEquip ●升级窗口:UpgradeWindow
●视觉展示:View ●商店视图:ShopView ●商品分类:Categories 根据标签动态生成 ●商品列表:ItemList ●合成面板:UItemCompoundPanel ●线条:Lines ●物品:Items ●背包:Inventory ●货币数量:GoldNumber ●物品分类:Categories ●物品列表:ItemList ●背包容量:Volume ●背包负重:Gravity ●监听数据变化:Listeners ●快捷栏:QuickBar ●货币数量:GoldNumber ●物品列表:ItemList ●监听数据变化:Listeners ●激活的物品:ActiveItem ●物品单元:ItemSlotBase ●商品:ShopItem ●背包物品:InventoryItem ●快捷栏物品:QuickBarItem ●合成物品:CompoundItem ●提示信息:Tips ●名称:Name ●描述:Description ●价格:Price ●词缀列表:Affix ●词缀 ●数量 ●监听 ●交互确认:ConfirmWindow ●文本:Text ●标题:Title ●物品价格:PriceText ●物品名称:ItemName ●物品数量:CountSlider ●按钮:Button ●确认:Confirm ●取消:Cancel ●升级窗口:UpgradeConfirm ●文本:Text ●标题:Title ●当前等级:CurrentLv ●下一等级:NextLv ●升级价格:PriceText ●按钮:Button ●确认:Confirm ●取消:Cancel
当然这个插件还没有完全开发完成,所以还有一个代办清单:
这些都是要在后面逐步实现并更新的.
那么订阅这个专栏可以得到什么?
这个专栏的价格比较高,一方面是因为参照了Epic商店对应类型的价格,所以希望可以给到大家一个合理的定价;另一方面是笔者现在开发独立游戏资金不足,所以想通过知识分享和付费来解决资金困难,希望大家多多支持;最最主要的是这个专栏的定价有助于提升其质量,笔者一定要对得起大家的每一分钱,所以是物超所值的.
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。