您的位置:首页 > 产品设计 > UI/UE

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

2015-10-27 00:03 537 查看
Inventory Master - uGUI 使用UGUI作为基础的、一款免费的UI系统插件,适用于unity5,插件提供了背包、快捷键栏、仓库、商店和工艺制造等一系列的游戏UI解决方案,并且还是免费的,在商城中直接就能下载使用 https://www.assetstore.unity3d.com/cn/#!/content/26310
先不管这款UI插件在国内的人气如何,博主觉得其还是挺有学习价值的,不管你是用UGUI的也好,用NGUI的也好,学API学到一定的程度后,终究会发现解决问题的关键是你的思路。

下文是博主对这款插件的研究过程,在官方文档的基础上又加以自身的理解,希望对大家的学习有所帮助!

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

1. 插件使用到的Tag:

请确保您在项目中有以下标签:



如创建 equipment system ,需要预设一个名为 Canvas 的Tag。

在菜单上“主系统Master System”,然后点击“即时通讯管理 IM-Manager”。有一个标签叫做项目数据库 ItemDatabase。

2. 如何创建/管理项目

打开项目数据库 ItemDatabase,将看到以下窗口并有2个标题:



第一个标题是用于创建一个项目,二是管理所有现有项目。如果你想要添加一个项目,您必须单击“添加项目Add Item”。



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

如果您想管理项目,请单击“管理项目 Manage Items”:



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

3. Blueprint data base 蓝图数据库

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

如何创建 create/manage receipt/blueprint

打开blueprintdatabase将出现下面的窗口:



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

4. 背包

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



库存脚本 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面板中寻找到这个脚本。



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

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

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

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

6. 装备

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

装备系统脚本 Equipment System Script

创建一个特定数量的装备系统(slot amount 单元格数量),在那里你可以指定插槽类型。此外slot 1,在默认设置,是在左上角的第一个单元格,而slot 2则在右上角的第一个单元格。



快捷栏

如果你想创建一个符合你需要的快捷栏,可以去“Master System/Create/Hotbar”创建。这快捷栏有快捷栏脚本、库存脚本,和库存设计脚本。



快捷栏的脚本 Hotbar Script

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

工艺系统 Craft System

如果你想创建一个craft system 你必须去 “Master System/Create/CraftSystem。这个工艺系统有库存脚本、工艺系统脚本和库存设计脚本。



工艺系统脚本 Craft System Script

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

工具提示

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



提示脚本 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列表就这样做



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

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

例如:





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

updateSlotSize()

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

使用到变量:

 slotSize

例如:





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

updatePadding()

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

使用变量:

 paddingBetweenX

 paddingBetweenY

 paddingRight

 paddingLeft

 paddingTop

 paddingBottom

例如:





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

updateIconSize()

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

使用变量:

 iconSize

例如:





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

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

这个函数增加了一个物品。这个函数需要一个物品ID和可能需要一个 itemvalue 物品数量 。如果你不使用该函数具有特定的物品数量 itemvalue,那么其默认值为1。

addItemToInventory(int itemID, int itemValue)也将返回与该物品的对象。

例如:



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

GameObject getItemGameObject (Item item)

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

bool checkIfItemAllreadyExist(int
itemID, int itemValue)

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

stackableSettings()

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

使用变量:

 positionNumberX

 positionNumberY

 stackable

例如:





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

deleteAllItems ()

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

deleteItem (Item item)

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

sortItems(Item item)

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

deleteItemFromInventoryWithGameObject (Item item)

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

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

事件:

Inventory

Inventory.ItemEquipt 这个事件是当你装备一个物品时。

Inventory.ItemConsumed 这个事件是当你使用一个物品时。

Inventory.UnEquipItem 这个事件是当你卸下一个物品时。

Inventory.InventoryOpened 这个事件是当你打开一个库存时。

Inventory.AllInventoriesClosed 这个事件当所有库存都关闭时。

例如:

第一步:

首先你要做的事情,当你使用的事件,你必须先 注册 方法,当事件被触发时,这个方法才会被调用。



第二步:

下一步是定义当事件被触发时函数所做的。



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

4. EquipmentSystem.class 装备系统类

变量:

int slotsInTotal 装备系统EquipmentSystem插槽的数量。

Itemtype[] itemTypeOfSlots 一个数组,存储每个插槽的物品类型。

例如:

在这个例子中,我们设置的第一个插槽的装备类型是 胸部Chest。



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

5. Hotbar.class 快捷栏类

变量:

int slotsInTotal 在快捷栏的插槽的数量。

Itemtype[] keyCodesForSlots 一个数组,存储为每个槽的键码。

例如:

在这个例子中,我们设置第一个位置的键码为“a”。



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

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