库存物品和库存消耗品的总览 (Inventory Items and Inventory Consumers Overview)

库存物品 (Inventory Items)

FPEInteractableInventoryItemScript组件用于创建"库存物品(Inventory Items)"。玩家可以通过各种方式收集和使用这些库存物品。

目录

[TOC]


总览 (Overview)

库存物品有点像可拾取道具,但是它们有一些特殊的属性。

最棒的是,“库存物品”可以被存放到玩家的库存(inventory)中。然后,玩家可以在库存中去查看、选择这些物品。并且玩家可以对“库存物品”进行交互,例如:用钥匙打开上锁的门,解开密码等。

在FPEGameMenu中有一个Items 选项卡,它会显示玩家存放到库存中的物品,并且玩家可以与库存中的物品交互(点击物品后,会弹出选择如何交互的界面)

FPEGameMenu:是这个插件提供的游戏中的菜单。在游戏中按ESC键,可以打开这个菜单。


创建一个库存物品 (Creating an Inventory Item)

  1. 随便丢一个3D模型(或者3D对象)到场景中,这里我们放一个Cube到场景中。

  2. 给这个对象添加一个碰撞器(例如Box Collider)。

  3. 将FPEInteractableInventoryItemScript组件(脚本)添加给这个Cube。

注意:添加FPEInteractableInventoryItemScript组件的时候,会自动在这个对象上添加一个RigidBody组件和一个AudioSource组件。
  1. 打开FPEInventoryManagerScript脚本,并将新的库存(Inventory)类型,添加到eInventoryItems枚举中,如下所示:

    CustomInventoryEnumValues.jpg


  2. 在FPEObjectTypeLookup脚本中,添加新的lookup值,如下所示。 这将确保让Save / Load系统知道:哪个预制体对应哪个库存类型。

    inventoryItemsLookup.Add()方法,用于添加新的lookup值:

    • 第1个参数:eInventoryItems枚举类型

    • 第2个参数:预制体的名字

    InventoryObjectLookupValue.jpg


  3. 选中Cube,然后在“Inspector”面板中,向下滚动到“Inventory(库存)”的部分,并设置以下的选项:

    NewInventoryInspector.jpg

    • Inventory Item Type (库存物品类型):选择这个库存物品的类型。这个类型,就是你在上面的eInventoryItems枚举中,所创建的类型(例如:APPLE,MY_CUSTOM_INV_A等)
    • Inventory Quantity (库存数量):当玩家存放这个“库存物品”时,要存放多少个这个物品。例如,1个电池预制体,在存放的时候,会被存放为1个电池。而一个绷带盒预制体,在存放的时候,可能会被存放为12个绷带。
    • Inventory Get Sound (Optional) (库存获取声音):如果设置了这个选项,这个声音将覆盖物品默认的库存获取声音。
    • Can Be Held (可以拿在手上):如果为true,那么玩家可以从库存中取出这物品,并将这个物品握在手中。
    • Can Be Dropped (可以丢弃):如果为true,那么玩家可以从库存中移除这个物品(丢掉这个物品)。
    • Can Be Consumed (可以消耗):如果为true,那么玩家可以使用(消耗)这个库存物品。 这需要Inventory Consumer (库存消耗品)
    • Item Name (物品的名字):显示的名字。 例如: demoApple预制体的物品名称为“Apple”
    • Item Image (物品的图片):物品在库存界面中,显示的图像。你可以参考"inventoryItemImageTemplate.psd" 这个PhotoShop的图片文件,你可以在FirstPersonExplorationKit/Textures/Templates/ 文件夹中找到。你可以使用FirstPersonExplorationKit/Scenes/Utility/文件夹中的 InventoryImageCapture.unity场景,来创建一致的图像。
    • Item Description (物品的描述):对这个物品的描述,这个描述可以很长。 例如:demoApple预制体的描述是“这是一个苹果。 看起来很脆!”
    • Stackable (可堆叠):如果为true,那么这个物品在库存中,可以堆叠起来。这意味着玩家可以拥有很多个这个物品,但是只占用一个物品位。这个物品真实的数量,会显示在物品位的右上角(例如,5个苹果,会放在一个物品位里,然后物品位的右上角会显示为“x5”)
  4. 如果你想要保存新的库存物品,请将库存物品的预制件放入Resources/InventoryItems/文件夹中。

    InventoryItemsResourcesFolder.jpg


  5. 如果你成功的创建了一个自定义的库存物品预制体,万岁!你真的超级棒哦!但是,如果你遇到了困难,或者出现了奇怪的错误,请发送电子邮件给我:support@whilefun.com

    AllFinished.jpg


库存消耗品(Inventory Consumers)

库存消耗品(FPERegioryConsumer脚本),是一个在使用关联的库存物品时,可以发生一些事情的脚本(例如:)。

下面我们来举一个例子:

我们为你提供了一个DemoRegioryConsumers脚本。这个脚本你可以在demoApple预制体(或者库存物品类型APPLE)上看到:

(要让这个脚本能够运行,需要勾选FPEInteractableInventoryItemScript组件中的Can Be Consumed选项)

InventoryConsumer.jpg


所有的库存消耗品,都必须继承自FPEInventoryConsumer类,而且要实现并重写consumeItem()函数,并在调用consumeItem()函数中调用base.consumeItem()方法,如下所示:

DemoInventoryConsumer.jpg


当你的库存物品被消耗的时候,会消耗这个物品,并且调用consumeItem()函数,从而执行你自定义的消耗物品的代码。


Inventory Ideas - Combining Actions

InventoryIdeas.jpg




FPEInteractableInventoryItemScript脚本中的变量(与库存相关的变量)

变量名———————— 变量名的中文翻译———————— 说明
Inventory Item Type 库存物品类型 选择这个库存物品的类型。
这个类型,就是你在上面的eInventoryItems枚举中,所创建的类型(例如:APPLE,MY_CUSTOM_INV_A等)
Inventory Quantity 库存数量 当玩家存放这个“库存物品”时,要存放多少个这个物品。
例如,1个电池预制体,在存放的时候,会被存放为1个电池。而一个绷带盒预制体,在存放的时候,可能会被存放为12个绷带。
Inventory Get Sound (Optional) 库存获取声音 如果设置了这个选项,这个声音将覆盖物品默认的库存获取声音。
Can Be Held 可以拿在手上 如果为true,那么玩家可以从库存中取出这物品,并将这个物品握在手中。
Can Be Dropped 可以丢弃 如果为true,那么玩家可以从库存中移除这个物品(丢掉这个物品)。
Can Be Consumed 可以消耗 如果为true,那么玩家可以使用(消耗)这个库存物品。 这需要Inventory Consumer (库存消耗品)
Item Name 物品的名字 显示的名字。 例如: demoApple预制体的物品名称为“Apple”
Item Image 物品的图片 物品在库存界面中,显示的图像。
你可以参考"inventoryItemImageTemplate.psd" 这个PhotoShop的图片文件,你可以在FirstPersonExplorationKit/Textures/Templates/ 文件夹中找到。
你可以使用FirstPersonExplorationKit/Scenes/Utility/文件夹中的 InventoryImageCapture.unity场景,来创建一致的图像。
Item Description 物品的描述 对这个物品的描述,这个描述可以很长。 例如:demoApple预制体的描述是“这是一个苹果。 看起来很脆!”
Stackable 可堆叠 如果为true,那么这个物品在库存中,可以堆叠起来。
这意味着玩家可以拥有很多个这个物品,但是只占用一个物品位。这个物品真实的数量,会显示在物品位的右上角(例如,5个苹果,会放在一个物品位里,然后物品位的右上角会显示为“x5”)

results matching ""

    No results matching ""