🚀 春季促销开始! 🚀 不要错过以7折优惠购买我所有系统的机会! 

点击购买
logo unreal

道具系统

avatar`
Yuewu(罗传月武)
Updated: Apr 16, 2025

道具定义

基本概念

道具定义是一个数据资产,创建一个新道具定义等同于新建一个类型为道具定义(GIS_ItemDefinition)的资产。

道具定义本质是静态数据,可添加道具数据片段、以实现复杂的数据结构。

它的主要作用是定义一系列与道具相关的静态数据,它是保存在硬盘中的,因此在网络游戏中,也能很容易的进行网络复制。

道具数据片段

道具数据片段是附加到道具定义上的一系列数据。

这一部分是受到了Lyra的启发,将不同的数据片段(ItemFragement)进行组合,即可构建出满足各种需求的复杂道具数据结构。

默认数据片段

获取数据片段

拓展新数据

一般有两种方式可以为道具添加新的数据类型。

数据片段方式

即组合方式,你构建不同的数据片段,将其组合到道具定义。这是最推荐的方式。

通过蓝图/C++你可以继承GIS_ItemFragement类并派生出一个新的Fragement类型,添加你需要新增的变量,确保它们是公开可编辑的。

然后在你的道具定义中,就可以选择新的数据片段了。

拓展道具定义类

即继承方式,你通过蓝图/C++继承GIS_ItemDefinition类并派生出一个新的道具定义类型,添加你需要新增的变量。

在新建数据资产时,你就可以选择这个新的道具定义类作为数据资产的类型了。

道具实例

一个道具定义可以在游戏进行时产生多个道具实例。实例可以被创建、销毁、或者保存。

通过一个道具实例,可以获取其定义。道具实例也可以在游戏进行时产生数据变化(比如强化,数值变更)。

实例的创建销毁

一般来说你不需要了解此部分,因为道具实例的创建和销毁一般已经由库存系统处理了,除非你要做一些更底层的事情。

GIS包含一个InventorySubsystem,负责在底层根据道具定义创建/复制道具实例。

在运行中修改实例数据