Bootstrap

unity库存系统插件-Ultimate Inventory System(一)功能简介


前言

如果说一个rpg游戏必不可少的功能,那就必须想到背包、商店、宝箱、交易、物品栏这些,我们可以将其统称为库存系统。可以说哪怕非rpg游戏也有库存系统的需求。
本文将使用Ultimate Inventory System插件快速实现库存系统,抛弃掉繁杂冗余的编程开发,快速实现游戏原型(主要为rpg、arpg类型),十分适合独立游戏开发者,尤其是独狼(像我一样)。而该插件也和我之前发布的文章 对话系统(Dialogue System for Unity) 有相关的集成支持。


一、库存系统?

以该插件举例,库存系统涵盖了物品、食谱、装备升级合成、货币,以及拾取互动、宝箱互动,当然商店、背包、物品栏这些UI的划分也是不可或缺的。
所以,答应我,不做(a)rpg的请划走!
插件地址(该系列教程文章使用Ultimate Inventory System 1.2.16,需要或者想要练习的可以私信我,毕竟价格90$比较贵,如需商用请购买正版)
文档

二、功能简介

1、库存系统
打开工具栏 Tools -> Opsive -> Ultimate Inventory System -> Main Manager ,点开项目类别和定义可以看到有个默认的模板,我们可以浏览插件默认的demo和子demo示例了解插件拥有的基本功能,这里不做过多说明。
在这里插入图片描述
2、设置,能够快速添加游戏的模块到自己的项目当中
在这里插入图片描述
3、物品类别(itme翻译问题,所以图里显示为项目)
在这里插入图片描述
4、物品定义
在这里插入图片描述
5、工艺类别
在这里插入图片描述
6、食谱、货币同物品定义,不做展示
7、导入导出,说实话用不到在这里插入图片描述
8、多种UI配置一键生成,如果想改直接修改对应预制体即可
在这里插入图片描述
9、集成支持
在这里插入图片描述

三、创建自己的库存

需求:制作rpg类模板,快速实现相关功能

1、准备工作(以下操作在首次使用时实现一遍即可)

1、新建场景,创建一个Plane当作场地,再创建一个胶囊作为角色,给角色加上Character Controller组件和内置脚本ExampleMove。摄像机移动到能看到主角的位置即可。
2、拷贝一份示例供我们自己使用,自带的demo就可以删除了。
具体操作为打开工具栏 Tools -> Opsive -> Ultimate Inventory System -> Main Manager(以后简称为Main Manager),如下图点击齿轮复制一份示例到自己规划的目录底下。在这里插入图片描述
3、加载功能脚本,绿色框拖入角色物体,添加需要的功能在这里插入图片描述
角色身上的库存脚本如下,不需要的功能可以不加
在这里插入图片描述
场景中game的脚本,包含对象池、声音管理等
在这里插入图片描述

4、UI构建-经典模板
进入Main Manager的UI Designer,点击Create Canvas Managers的Setup按钮创建UI管理器,如图选择一个模板(我这里选经典),然后找一个文件夹保存
在这里插入图片描述
然后点下面的Spawn In Scene就自动生成到当前场景中了。
5、物品拾取模板
通过Setup创建拾取模板,第一个随便找个模型即可(不要加碰撞组件),第二个需要选择刚刚生成的经典模板文件夹里面的预制体(3d的UI显示器),最后点击Create场景就会生成出一个掉落物 Item Pickup Template
在这里插入图片描述

在这里插入图片描述

2、设置基础物品

1、首先我们给角色自身添加点东西,点击角色身上的脚本,如下图先点击默认的Main ItemCollection集合,再添加任意物品。
在这里插入图片描述
2、货币设置
再打开角色身上的Currency Owner货币管理添加多个货币
在这里插入图片描述
3、掉落物设置
找到掉落物模板,点Change随便选个物品
在这里插入图片描述

3、运行游戏
可以发现人物持有货币正确

我们先打开背包,发现物品如期生成

再按E捡取炸弹,发现背包里多出了炸弹

在这里插入图片描述

3、设置制作配方

首先我们打开下图UI的制作菜单,找到上面的Crafter(工匠)脚本
在这里插入图片描述
如图添加所有配方
在这里插入图片描述
运行游戏发现没有商店入口,很尴尬,其实官方是留接口的;如下图,找到UI,发现上面都有 Display Panel 脚本,运行状态下点击Smart Open即可打开制作界面。在这里插入图片描述

4、设置商店物品

首先我们打开下图UI的商店菜单,找到上面的Inventory(库存)脚本
在这里插入图片描述

如图随意添加物品
在这里插入图片描述
运行游戏发现没有商店入口,又很尴尬,其实官方是留接口的;如下图,找到UI,发现上面都有 Display Panel 脚本,运行状态下点击Smart Open即可打开商店。(哈哈,复读机)
在这里插入图片描述
想使用按钮调用,我们找到Classic Schema Full Layout这个UI,在该UI下创建一个按钮,再新建脚本添加按钮绑定事件,如下图为商店的打开代码。同理,其他的界面也能愉快的打开了。呃,其他的方法如关闭(为SmartClose方法)可以查阅Display Panel 脚本。

public Button ShopBtn;
public DisplayPanel displayPanel;
private void Start()
{
	ShopBtn.onClick.AddListener(displayPanel.SmartOpen);
}

5、保存加载

接上操作,我们捡起炸弹,打开商店卖掉其他装备。背包现在就一个炸弹,然后点下面的保存。
重新运行游戏,点刚刚保存的文件进行加载,发现背包只剩下了炸弹。
在这里插入图片描述


总结

该篇文章粗略介绍了库存系统的创建和基本设置,囊括了物品设置、拾取、合成,背包,商店,货币,相信能让不懂代码的小伙伴也能快速入手。但一个游戏往往细节决定成败,物品、合成的自定义技巧,拾取or自动拾取,背包商店里的物体如何进行管理,考虑怎么通过代码脚本实现接口自由支配插件等等是一个好游戏需要打磨的关键。

接下来我们将渐入佳境,下面几篇分别是,自定义物品篇(物品、合成等),自定义视图UI篇(拖动、物品分类等偏UI的功能),自定义代码篇(如何调用接口接入自己的项目)。ok,我已经迫不及待了!如果你看完了觉得有用不妨点个赞支持一下,如有疏忽、错误请留言指出,共同学习。

;