UE4 | 多人游戏#3的库存| 互动结构




在本文中,我们将研究应用于多人项目的清单结构。 本部分很小,不包含代码。


库存本身不仅是角色的组件,而且是游戏中任何对象的组件,根据情况,该对象可以存储物品。 例如:箱子,箱子,盒子,壁橱等。




该组件包含一个TArray ,其元素存储最少的必要信息:


  1. 对象的标识符,形式为GameplayTag 。 如前所述, GameplayTagFName更方便,因为它可以大大降低出错的风险。
  2. 在槽的对象的数量指定由变量int。
  3. 了解对象的类别以了解如何应用。 为此您可以使用GameplayTagsContainer来代替Enum,这将使我们能够在必要时立即将对象归因于多种类型。
  4. 对象的唯一属性,这些属性存储为一堆GameplayTagfloat的结构 。 您可以在此处存储参数和修饰符。

在此清单结构中没有指向对象本身的链接,因为在保存和加载游戏后,它们将引用已存储其他数据的区域。 因此,您需要一些可以在加载游戏后还原(重生)所有对象的工具。 这里是DataAsset急救工具 ,它始终在服务器端可用(因为在我们的案例中,我们通过GameMode将其连接),并准备将对象放置在舞台上。


库存组件还包含用于删除和添加所需数量的对象的逻辑,以及用于填充插槽的逻辑。 容器中启动的所有功能应仅在服务器端起作用。


库存与数据库交互的结构如下

使用C ++和/或Blueprint可以轻松配置对象的独特属性,例如附加组件和逻辑。


在下一节中,我将展示如何将创建的组件连接到Character或任何其他对象。


任何建设性的批评都值得欢迎。 最好有建议支持。


PS在前两篇文章中添加了说明性图像。

Source: https://habr.com/ru/post/zh-CN419347/


All Articles