免费 UGUI 插件 Inventory Master 背包系统使用方法

         Inventory Master - uGUI   使用UGUI作为基础的、一款免费的UI系统插件,适用于 unity5,插件提供了背包、快捷键栏、仓库、商店和工艺制造等一系列的游戏UI解决方案,并且还是免费的,在商城中直接就能下载使用  https://www.assetstore.unity3d.com/cn/#!/content/26310
        先不管这款UI插件在国内的人气如何,博主觉得其还是挺有学习价值的,不管你是用UGUI的也好,用NGUI的也好,学API学到一定的程度后,终究会发现解决 问题的关键是你的思路。
        下文是博主对这款插件的研究过程,在官方文档的基础上又加以自身的理解,希望对大家的学习有所帮助!
 
——————————————————————————————————————————————————————————
 
1. 插件使用到的Tag:

请确保您在项目中有以下标签:
免费 UGUI 插件 Inventory Master 背包系统使用方法_第1张图片

如创建 equipment system ,需要预设一个名为 Canvas 的Tag。
在菜单上“主系统Master System”,然后点击“即时通讯管理 IM-Manager”。有一个标签叫做项目数据库 ItemDatabase。

2. 如何创建/管理项目
打开项目数据库  ItemDatabase,将看到以下窗口并有2个标题:
免费 UGUI 插件 Inventory Master 背包系统使用方法_第2张图片


第一个标题是用于创建一个项目,二是管理所有现有项目。如果你想 要添加一个项目,您必须单击“添加项目Add Item”。
免费 UGUI 插件 Inventory Master 背包系统使用方法_第3张图片


“ItemType”已经有一大堆类型预设,你必须选择确定你的类型 项目。“最大堆栈 Max Stack ”是指为特定物品的堆积的上限。“稀有 Rarity”是重要的物品,并设置物品 一个特定的机率掉落。如果你设置为1的稀有程度,这个物品将掉落的机会很低,低于30% 。该项目— 人的活动是重要的。当物品被标为”消耗品 consume item”,你可以在游戏中 对这物品的属性进行操作。

如果您想管理项目,请单击“管理项目 Manage Items”:
免费 UGUI 插件 Inventory Master 背包系统使用方法_第4张图片

所有项目的列表以上显示。当你点击一个项目如果你发现有相同的可能性,你 可以从项目数据库中删除项。



3. Blueprint data base   蓝图数据库

在菜单上“主系统 Master System”,然后点击“即时通讯管理 IM-Manager”。有一个标签叫 blueprintdata-base。

如何创建 create/manage receipt/blueprint

打开blueprintdatabase将出现下面的窗口:
免费 UGUI 插件 Inventory Master 背包系统使用方法_第5张图片


如果你想创建一个物品,你必须选择一个“最终项目 Final Item ”,然后设置所需的材料条件,你 可以设置材料的数量。 如果你想管理蓝图,你必须点击“管理蓝图 Manage Blueprints”, 您可以删除不需要的蓝图。




4. 背包

如果你想创建一个背包,比去菜单“主系统 Master System”,点击“Create/Inventory and Storage   库存和储存“。您所创建的每一个与主系统的库存都将有一个 背包脚本 Inventory Script 。

免费 UGUI 插件 Inventory Master 背包系统使用方法_第6张图片


库存脚本   Inventory Script 
你必须在“Player   Inventory“上 打钩, 这是您的主要 角色的库存系统。如果你想改变 库存,打开 折页”Inventory Settings” 你有4种不同的选择。 前两者是 单元格的个数,在总体高度和 宽度上的数量。“slot size”指 每个单元格的大小。“Icon Size”是 每个物品的图标大小。

如果你想改变单元格填充  的边界或  单元格之间的间距 ,打开折 页“填充 Padding”,“Left, Right,, Bottom, Top”意味着填充 背包的边界大小 。“Spacing X 和  Spacing Y”指单元格之间的间距。

如果你想激活物品的叠加和分裂的功能,打开折页”Stacking/Splitting ” 并打上钩,然后你看见新出现的选项,并设置叠加数字显示的坐标位置。

如果你想将一个条目添加到库存,在脚本下面有选择项,选择合适的物品和数量,并 点击“添加项目 Add Item”。物品将被放置到背包中一个空的单元格内。




5. 库存设计脚本
每个清单都有这个脚本。如果你 想要改变你的库存设计,你必须在 inspector面板中寻找到这个脚本。
免费 UGUI 插件 Inventory Master 背包系统使用方法_第7张图片


如果您打开“库存设计 Inventory Design”的 折页,你可以为库存去创造一个 标题,这将是 显示在库存顶部(默认) 。当你打开折页 “字体 Font”你可以按你喜欢的去设计标题文字 。此外,你可以改变 字体样式的字体设置, 大小,颜色等。

如果你想改变 库存的背景, 打开 “库存设计 Inventory Design” 折页,你可以改变 库存的“源图像 Source Image ”。 此外,你可以改变图片的颜色 和材质 ,图像类型和填充中心。

如果你想有一个关闭按钮 在右上角,你必须激活 “closebutton”选项,调整按钮的坐标 位置。此外,你可以 如果改变按钮的背景 ,你只需要打开 “设计 Design”折页。

如果你想改变设计 每个单元格,你可以打开 “Slot   Design”设计。你可以改变 源图像。此外你 可以改变图片的颜色, 材质,图像类型,你可以切换填充中心。如果你改变颜色,它可能会有一点延迟,因为这个 预制正在同步改变,这可能需要少量的系统资源。



6. 装备

如果你想创建一个角色装备系统,你必须去 “Master Sys tem/Create/EquipmentSystem”。设备系统具有库存脚本、装备系统 脚本和库存设计脚本。


装备系统脚本 Equipment System Script

创建一个特定数量的装备系统 (slot amount 单元格数量), 在那里你可以指定插槽 类型。此外 slot 1,在默认设置,是 在左上角的第一个单元格,而slot 2则在 右上角的第一个单元格。
免费 UGUI 插件 Inventory Master 背包系统使用方法_第8张图片


快捷栏

如果你想创建一个符合你需要的快捷栏,可以去“Master System/Create/Hotbar”创建。这 快捷栏快捷栏脚本、 库存脚本,和库存设计脚本。
免费 UGUI 插件 Inventory Master 背包系统使用方法_第9张图片


快捷栏的脚本 Hotbar Script
脚本创建了一个特定数量的 关键码的快捷栏 。Slot  1 是从左起的第一个插槽。当你改变这里的Slot数量时,快捷栏的格子数量也会改变。


工艺系统 Craft System

如果你想创建一个craft system 你必须去 “Master System/Create/CraftSystem。这个 工艺系统有库存脚本、工艺系统脚本和库存设计脚本。
免费 UGUI 插件 Inventory Master 背包系统使用方法_第10张图片

工艺系统脚本 Craft System Script

工艺系统脚本让你改变 一些设计方案。第一折页 “final slot”给你机会定位单元格到一个特定的地方。第二折页“Arrows 箭头”,让您选择坐标位置和旋转方向。 下一个大的折页”Design“让你 改变“final slot”和 设计“ Arrows”。你可以在折页中的选项去 改变纹理、颜色、材质、图像类型以及与填充中心的切换。


工具提示

如果你想创建一个提示,你必须去“Master System/Create/Tooltip”。工具提示是 没有其他的脚本的。

免费 UGUI 插件 Inventory Master 背包系统使用方法_第11张图片


提示脚本 Tooltip Script

你能做的第一件事是 改变工具提示面板的大小 。此外,你可以改变 该工具提示的背景纹理。那里 你有机会改变纹理,颜色,材质和图像类型。
你有三个不同的开关。 当你勾出一个开关,你将激活相应功能。在我们的例子中,所有的功能都被激活。

如果你激活了“项目图标 Item Icon ”你 可以在提示的位置附上图标。此外,你可以改变 图标的大小

如果你激活了“项目名称 Item Name ” 你可以定位你的名字 更改字体设置。你有以下的设置:字体,字体,字体 尺寸,线间距,丰富的文字,颜色和材质。

如果您已激活该”物品描述 Item Description“, 你可以改变描述出现的位置和改变 文本字段的大小。此外你 可以更改所有字体设置。


—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— API ——————————————————————————————————————



1. Item.class 物品类

变量:
string itemName        物品名称
int itemID               每个物品都有他自己独特的ID
stringitemDesc        物品的描述。
Sprite itemIcon        物品的图标
GameObject itemModel   物品的模型
int itemValue   物品数量, 在默认情况下itemValue是1。
Itemtype itemtype    物品的类型
int maxStack    最大叠加数量
int rarity    物品稀有程度

函数:

getCopy()      这个方法返回一个物品的复制品。





2. ItemDataBase.class  物品数据库类

变量:
List itemList       提取itemdatabase中所以物品列表


例如: 
如果你想获得itemdatabase列表就这样做
免费 UGUI 插件 Inventory Master 背包系统使用方法_第12张图片


——————————————————————————————

3. Inventory.class 库存类

每一个存储、制定工艺craftsystem、 角色装备charactersystem 使用库存类脚本。

变量:

bool mainInventory         判断是否为玩家的主要背包
List ItemsInInventory          目前在库存中的物品。 每次拖动、拖放和使用 一个物品时,都会进行更新。
int height        在纵向的库存格子数量。
int width          在横向的库存格子数量。
bool stackable         物品是否可以堆叠。当这个布尔值为真时,物品的数量才会出现,否则 不会。
int slotSize        每个单元格的大小。
int iconSize       物品图标的大小。
int paddingBetweenX         填充在X轴之间的单元格缝隙
int paddingBetweenY         填充在Y轴之间的单元格缝隙
int paddingLeft                   填充 左侧单元格的边界
int paddingRight                填充右侧单元格的边界
int paddingBottom             填充底部单元格的边界
int paddingTop                  填充顶部单元格的边界
int positionNumberX        可堆叠的物品的显示数量位置(X轴)
int positionNumberY         可堆叠的物品的显示数量位置(Y轴)

函数:

Inventory.closeInventory()   

关闭背包




adjustInventorySize() 

此方法调整库存的默认大小。

使用到的变量:
  width
  height
  slotsize
  paddingbetweenX
  paddingbetweenY
  paddingLeft
  paddingRight
  paddingTop
  paddingBottom

————————————————————————

updateSlotAmount()  

这个方法更新库存在水平和垂直方向的大小。

使用到变量:
  width
  height


例如:
免费 UGUI 插件 Inventory Master 背包系统使用方法_第13张图片

免费 UGUI 插件 Inventory Master 背包系统使用方法_第14张图片



——————————————————————

updateSlotSize() 

这个函数更新单元格的大小。

使用到变量:
  slotSize

例如:
免费 UGUI 插件 Inventory Master 背包系统使用方法_第15张图片
免费 UGUI 插件 Inventory Master 背包系统使用方法_第16张图片


——————————————————————————————————

updatePadding() 

这个函数更新库存的填充属性

使用变量:
  paddingBetweenX
  paddingBetweenY
  paddingRight
  paddingLeft
  paddingTop
  paddingBottom

例如:
免费 UGUI 插件 Inventory Master 背包系统使用方法_第17张图片
免费 UGUI 插件 Inventory Master 背包系统使用方法_第18张图片



————————————————————————————————————


updateIconSize()  

该函数改变每个物品图标的大小。

使用变量:
  iconSize

例如:
免费 UGUI 插件 Inventory Master 背包系统使用方法_第19张图片
免费 UGUI 插件 Inventory Master 背包系统使用方法_第20张图片


——————————————————————————————————————


 addItemToInventory(int ITEMID), GameObjectaddItemToInventory(int itemID, int itemVALUE)   

这个函数增加了一个物品。这个函数需要一个物品ID和可能需要一个 itemvalue 物品数量 。如果你不 使用该函数具有特定的物品数量 itemvalue,那么其默认值为1。
addItemToInventory(int itemID, int   itemValue)也将返回与该物品的对象。

例如:
免费 UGUI 插件 Inventory Master 背包系统使用方法_第21张图片



————————————————————————————————————————————————————


GameObject getItemGameObject (Item item)  

返回一个物品的游戏对象。



bool checkIfItemAllreadyExist(int itemID, int itemValue)  

这个函数返回一个布尔值,也将该物品添加到库存的堆栈中,当库存中已经存在一个相同的物品可以堆叠放置,那么它返回真。如果库存中没有现成的堆栈,那么它返回假。



stackableSettings() 
这个函数设置itemvalue数量位置的变化。

使用变量:
   positionNumberX
   positionNumberY
   stackable

例如:
免费 UGUI 插件 Inventory Master 背包系统使用方法_第22张图片

免费 UGUI 插件 Inventory Master 背包系统使用方法_第23张图片


————————————————————————————————————————————————————

deleteAllItems () 

该函数删除库存中所有物品



deleteItem (Item item)  

这个函数从库存中删除一个特定的物品


sortItems(Item item)  

这个函数取得所有的物品,并将它们放置在一个序列中。



deleteItemFromInventoryWithGameObject (Item item)  

从库存中删除物品的游戏对象。


——————————————————————————————————————————————————————————————


事件:

Inventory

Inventory.ItemEquipt                      这个事件是当你装备一个物品时。
Inventory.ItemConsumed               这个事件是当你使用一个物品时。
Inventory.UnEquipItem                  这个事件是当你卸下一个物品时。
Inventory.InventoryOpened            这个事件是当你打开一个库存时。
Inventory.AllInventoriesClosed       这个事件当所有库存都关闭时。


例如:
第一步:
首先你要做的事情,当你使用的事件,你必须先 注册 方法,当 事件被触发时,这个方法才会被调用。
免费 UGUI 插件 Inventory Master 背包系统使用方法_第24张图片


第二步:
下一步是定义当事件被触发时函数所做的。
免费 UGUI 插件 Inventory Master 背包系统使用方法_第25张图片



——————————————————————————————————————————————————————————————————————


4.  EquipmentSystem.class      装备系统类


变量:
int slotsInTotal                                   装备系统E quipmentSystem插槽的数量。        
Itemtype[] itemTypeOfSlots            一 个数组,存储每个插槽的物品类型。               

例如:
在这个例子中,我们设置的第一个插槽的装备类型是 胸部Chest。
免费 UGUI 插件 Inventory Master 背包系统使用方法_第26张图片



————————————————————————————————————————————————————————————————————————

5.      Hotbar.class      快捷栏类

变量:
int slotsInTotal                                               在快捷栏的插槽的数量。         
Itemtype[] keyCodesForSlots                       一个数组,存储为每个槽的键码。

例如:
在这个例子中,我们设置第一个位置的键码为“a”。
免费 UGUI 插件 Inventory Master 背包系统使用方法_第27张图片


——————————————————————————————————————————————————————————————————————————————————————————————————————————————

实际项目使用经验总结:
1. 请确保有 MainInventory 标签(其它的Tag系统会自动生成,唯独这个创建背包的Tag有时不会自动生成!)
2. 如果创建的项目如背包系统,出现没法在UI上显示的问题,请确保其 Scale 设置是否正确(1,1,1) 。
3. CloseInventory 自带的关闭按钮脚本不能触发按钮点击事件,最好不要使用这个脚本,移除掉!
4. 这款插件应该是作者个人开发的,一个人的力量总是很单薄,难以避免一些BUG,所以你在学习过程中应该带着批判精神。

你可能感兴趣的:(免费 UGUI 插件 Inventory Master 背包系统使用方法)