背包系统
goGogoiii
这个作者很懒,什么都没留下…
展开
-
Unity之背包系统(一):物品类的生成和背包的制作
物品的UML类图创建Item 物品基类:再开发它的消耗品类、装备类、武器类接着,设计消耗品类的JSON文件:http://www.bejson.com/jsoneditoronline/创建一个物品管理类做成单例模式,将脚本放在“InventoryManager”(场景中新建的GameObject)中 :然后用JsonObject解析Json...原创 2020-05-06 20:39:21 · 14986 阅读 · 7 评论 -
背包系统(五):添加Chest箱子类
将背包复制一份,并修改Height,作为箱子单例类:让背包和箱子能够显示和隐藏:在Inventory类中(箱子和背包的父类),添加隐藏和显示的方法:在Update中更新箱子和背包的CanvasGroup组件的Alpha值和BlockRaycast :可用Player类对其检测:...原创 2020-05-06 20:40:36 · 443 阅读 · 0 评论 -
Unity背包系统(二):ToolTip类(物品信息提示类)的显示与跟随
UI创建Text下面创建Image和Text,将ToolTip的中心点移至左上角,再ToolTip添加Content Size Fitter组件,H和V调为V Size,如图给ToolTip添加脚本和Canvas Group组件,控制其隐藏和显示:using System.Collections;using System.Collections.Generic;using...原创 2020-05-06 20:39:40 · 4128 阅读 · 2 评论 -
背包系统(六):人物面板
先制作一个人物面板并修改各个部位的名字:在CharacterPanel下添加脚本CharacterPanel(单例模式,继承自Inventory) ,在子物体Slot中添加脚本EquipmentSlot(继承至Slot)在EquipmentSlot类中声明武器类和装备类,并在Equipment和Weapon类的脚本中将EquipmentType和WeaponType枚举类中添加一个No...原创 2020-05-06 20:41:11 · 1201 阅读 · 0 评论 -
背包系统(三):完善其他的JSON
添加蓝瓶的JSON文件在之前的Inventory类的StoreItemh方和FindSameTypeSlot法中,将Type修改为ID—由ID来区分物品,而不是类型(同类型又好几种不同的物品),并在Slot中添加一个获取ID的方法写一个装备类--胸甲的JSONenum.Parse:将一个或多个枚举常数的名称或数字值的字符串表示转换成等效的枚举对象解析装备的JSON:...原创 2020-05-06 20:40:07 · 757 阅读 · 0 评论 -
背包系统(四):对物品的点击操作
将ItemUI移动至Canvas下,改名为PickedItem,在InventoryManager中声明PickedItem,将其作为鼠标选中的物体,在ItemUI中声明隐藏、显示、设置其位置的方法,并在InventoryManager的Start中调用PickedItem的Hide方法将其在开始时隐藏接着,在Slot中实现接口IPointDownHandler(用于对物品的操作)...原创 2020-05-06 20:40:21 · 1460 阅读 · 0 评论 -
背包系统(七):游戏商店
先创建一个商店,并添加脚本ShopPanel,并将子物体的Slot脚本替换为ShopSlot,继承自Slot:再创建一个金币,在Player中对金钱进行管理,并声明获取和花费金钱的方法:在ShopPanel中初始化商店要卖出的物品:遍历数组调用StoreItem()--通过ID来存储物品(在脚本上写入要卖的物品的IDShopSlot重写父类OnPointerD...原创 2020-05-06 20:41:18 · 863 阅读 · 0 评论 -
背包系统(八):锻造装备
创建一个锻造炉,为锻造炉添加ForgePanel脚本:为锻造材料增加JSON文件并为其配置Formula脚本用于解析对应的JSON字段:在FormulaPanel类中对JSON进行解析并在Start中调用:在Formula脚本中声明 是否能够匹配锻造所需要的材料和个数 的方法:思路:先创建一个<int>集合needMateriaList,...原创 2020-05-06 20:41:24 · 492 阅读 · 0 评论 -
背包系统(九):数据的存储—通过PlayerPrefs进行数据持久化(完结)
在Inventory中写入数据的存储和读取的方法:存储数据时使用StringBuilder(using System.Text)的原因:→在程序开发过程中,我们常常碰到字符串连接的情况,方便和直接的方式是通过"+"符号来实现,但是这种方式达到目的的效率比较低,且每执行一次都会创建一个String对象,即耗时,又浪费空间。使用StringBuilder类就可以避免这种问题的发生存储的方...原创 2020-05-06 20:41:30 · 1001 阅读 · 0 评论