物品

一把枪械、一颗手雷、一些子弹,这些都是物品,在游戏过程中,涉及到装备或道具就离不开物品的概念。

物品在玩家身上时依赖于玩家背包存在。玩家背包容纳了这些物品。

物品的分类

物品拥有以下分类:

装备

装备包含武器、防具、背包、配件、功能装备。

其中背包指的是具体的背包的道具,而不是上文提到的容纳物品的概念。

image-20240821150846221

背包

道具

道具包含手雷、治疗道具、特殊道具、各类子弹。

玩家背包

这里的玩家背包区别于背包,是指玩家所拥有的物品空间的抽象概念,而背包可以增加玩家背包的空间,并提供外观皮肤的变化。

image-20240821152243567

玩家背包

背包内容分类

装备栏

上图中1.的部分,是玩家背包中的装备栏。装备栏内是玩家当前装备的武器、防具、背包和功能装备。

道具栏

上图中2.的部分,是玩家背包中的道具栏按钮,正下方的区域显示道具。

image-20240821152456167

有道具时

所有的可见道具都会存放在这里。

装置栏

背包图中的3.部分,是装置栏按钮。对于编辑器来说,目前只有冰墙生成器一个装置。

image-20240821154645057

装置可由脚本开启,开启后的装备显示在背包中该分类下。

image-20240821154756422

黑洞空间

背包界面不展示的装备、道具会存在于黑洞空间中,玩家不可以直接在背包中查看该道具。

使用背包内物品

通常来说,大多数的物品都可以在背包外使用或自动使用。包括武器、配件、手雷等。

但是仍然可以在背包中进行一定的操作。

使用指定物品:

image-20240821160116244

拆卸/更换/安装配件:

image-20240821160157425

image-20240821160207806

拆卸配件

丢弃背包内的物品:

image-20240821160306511

在场景中布置物品

有两种方式可以在指定位置生成物品:生成器和单位。

使用生成器生成物品,可以设定为每回合刷新,但是只能指定类型。如果刷新时上一次生成的物品没有被取走,则会替换为新生成的物品。

使用单位放置物品,可以精确设定生成的武器或道具类型,默认状态下只会生成一份对应的物品。

生成器

image-20240730180747977

image-20240730180753598

根据类型选择对应的生成器,以武器为例:

image-20240730181011764

在配置中可以选择生成的武器类型:

image-20240730181034487

在每回合重置组件中可以设定该生成点会不会在每个回合开始时刷新。

image-20240730181104786

特别的,当选择生成武器时,会生成配套的一组弹药和配件。

单位

image-20240730175100849

使用单位中的武器和道具,可以在指定位置生成配置的武器或道具。

image-20240730175225713

以这种方式摆放的物品可以修改属性:

image-20240730184405465

image-20240730184527556

物品事件

您可以监听一些物品相关的事件,来实现您想要的逻辑。

下面介绍一些常用事件:

名称 脚本名 说明 参数1 参数2 参数3 依赖实体
当获取物品时 OnObtainItem 玩家从任意途径获得物品时触发 物品ID,玩家获取的物品ID 物品实体,玩家获取的物品实体,可以为空 Player
当使用物品时 OnUseItem 玩家使用物品时触发 物品ID,玩家使用的物品ID 物品实体,玩家使用的物品实体,可以为空 使用后创建的新道具实体。类似随身炮塔一类的道具,可以通过这个参数取到创建出实体。 Player
当丢弃道具时 OnDropItem 玩家丢弃物品时触发 物品ID,玩家丢弃的物品ID 物品实体,玩家丢弃的物品实体,可以为空 Player
当被拾取时 OnPickup 物品被拾取时触发,需要挂载在物品实体上 拾取物品的玩家 InventoryBase
当被使用时 OnUsed 物品被使用时触发,需要挂载在物品实体上 InventoryBase
当被丢弃时 OnDrop 物品被丢弃时触发,需要挂载在物品实体上 丢弃物品的玩家 InventoryBase

物品API

使用物品API可以对物品进行操作。

下面分类介绍一些常用API:

增添物品

名称 脚本名 说明 入参1 入参2 入参3 回参1
添加物品 AddItem 将物品发送至玩家背包 被添加物品的玩家 添加的物品 物品数量 添加的物品列表。无论数量等于多少,都以列表形式返回。
在场景中创建物品 AddItemInScene 将物品创建至指定位置 物品位置 创建的物品 物品数量

删除物品

名称 脚本名 说明 入参1 入参2 入参3 回参1
销毁物品 DestroyItem 删除玩家身上的物品 被删除物品的玩家 被删除的物品 物品数量
销毁装备 DestroyEquipment 根据槽位摧毁玩家已装备的物品 被删除物品的玩家 槽位 物品数量 是否成功摧毁
清空背包 ClearBackpack 清空玩家身上所有物品,包括已装备的物品 被删除物品的玩家

查询物品

名称 脚本名 说明 入参1 入参2 回参1 回参2
获取背包装备栏中物品 GetEquipments 根据槽位获取玩家装备的物品 携带物品的玩家 槽位 装备物品实体 该装备的配件列表
获取物品数量 GetItemCount 获取玩家背包里某个物品的数量 携带物品的玩家 物品ID 这个物品的数量

修改物品

名称 脚本名 说明 入参1 入参2 入参3 回参1 回参2
为玩家发放武器配件 AddAttachments 为玩家发放指定槽位的武器的配件 玩家 槽位 配件物品ID 是否成功 配件实体
切换玩家武器 SwitchWeapon 将指定槽位的武器切换为玩家当前武器 玩家 槽位 是否成功