[Opsive - ultimate inventory system] Item Upgrades (项目升级)

英文原文:https://opsive.com/support/documentation/ultimate-inventory-system/item/item-upgrades/

ITEM UPGRADES(项目升级)

升级物品的方法有很多种:

父/子 Item Definitions

如果您有一个简单的升级系统,其中可升级项目具有有限且线性的升级路径,则这是推荐的方法。 有限和线性路径意味着每次升级的项目都具有相同的结果。 例如:剑 -> 剑+1 -> 剑+2 -> 剑+3。 通过这种方法,您可以为每把剑拥有一个项目定义:剑、剑+1、剑+2、剑+3。

然后,项目定义可以与父/子关系链接。 这允许您继承父级的属性值,然后可以为每个定义覆盖或修改该属性值。 这是一个很好的说法,“剑+2 的攻击力必须始终比剑+1 高 20%”

然后应创建一个名为“升级”、类型为“项目定义”的新项目定义属性。 这将允许您按顺序链接项目定义升级。 如果需要,可以创建自定义类型的 UpgradeRequirements 属性。 该属性将决定您何时被允许升级您的物品。

然后需要一个自定义脚本来获取升级要求并检查升级是否有效。 如果该项目有效,则可以使用升级项目定义属性将其替换为新项目。

这种方法相当简单,为那些想要易于管理的物品升级系统的人提供了一个很好的解决方案。 请注意,这是与可扩展性的权衡,因为一旦达到数百个可升级项目(每个项目都有很多升级),这种方法就无法很好地扩展。

Item Definitions and Item Attributes (项目定义和项目属性)

如果您有简单的项目升级依赖项和很少的可升级项目,则建议使用此方法。

此方法使用项目属性来定义项目可以升级到的项目定义数组/列表。 举个例子,假设你有一把攻击力为 3 的剑和一把攻击力为 5 的剑+1。 可以使用 string[] 属性 UpgradeName 和 int[] 属性 UpgradeAttack 创建项目定义“Sword”。 该项目应该有两个 int 属性,分别称为 Attack 和 Level。

在新脚本中,您可以检查项目级别以了解该项目是否可以升级。 如果物品可以升级,则物品的等级属性应该增加。 然后可以获取项目定义的 UpgradeName 和 UpgradeAttack 以替换项目的名称和攻击值。

Upgrade Items and Upgradable Items with Slots(升级物品和带插槽的可升级物品)

这是演示中使用的方法。 这并不意味着它是适合所有情况的最佳方法。 该方法由两部分组成。 可升级物品和升级物品。 可升级物品是可以在称为插槽的数组中容纳其他物品的物品。 这些插槽可以填充归类为升级物品的物品。 这允许您创建一个可用于升级任何可升级项目的升级项目。

需要将基本值添加到项目定义中,并且每次升级项目时都会重新计算该值。 然后,应将类型为 ItemAmounts 的名为 Slots 的新属性添加到可升级项目的项目定义中。 这存储了该项目可以升级到的项目。 然后应该创建一个新脚本,该脚本知道每次升级将如何影响项目类别的可升级项目。 当项目升级时,可以根据 ItemDefinition 上的基本值和 Slots 属性中包含的升级项目来选择正确的可升级项目。

在演示场景中,“Boost升级”以不同的方式升级“武器”和“盔甲”物品。 它将增加武器物品的攻击属性和盔甲物品的防御属性。

尽管与之前的两种解决方案相比,这种方法需要更复杂的脚本,但它非常灵活且可扩展。

Crafting(制作)

与其他方法相比,这种方法有所不同。 它使用制作食谱作为升级的基础。 通过制作系统,您可以创建通用成分列表,并拥有一个自定义的制作处理器,该处理器根据所提供的成分遵循不同的逻辑。 您可以有一个名为“武器升级”的配方,它使用项目类别定义为 1 种武器 + 5 种材料。 您的制作处理器将获取符合该描述的物品(例如,1 剑 + 2 铁 + 3 青铜)。 然后,它可以使用材料的稀有性和兼容性作为参数来计算剑升级后的攻击值。 相同的制作配方和制作处理器可用于升级任何武器

这种方法最适合非常复杂的系统,因为它比其他解决方案需要更多的代码。 推荐给中级程序员。

哪种工作流程最好?

没有比其他工作流程更好的工作流程。 它们都有各自的优点和缺点。 您应该选择的工作流程应取决于所需的库存结构。 您还可以混合搭配这些方法以利用它们的优势。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值