物品的分类与整理
效果图
全部
装备
药水
其他
实现功能
1.全部显示背包的所有格子及所有物品
2.分类显示该类物品及该类物品个数的格子
3.不管是哪个面板的装备进行了更新,其余面板都应更新
4.数量显示当前格子数量和总数量
例如
从装备Tab装备一个装备至角色身上
装备分页该装备要消失
并且在全部分页中也应该对应消失
实现逻辑
1.有两个背包容器,一个为全部的物品,格子数量初始化固定,另一个为部分的物品,格子数量动态变化,切换标签页时对应隐藏背包容器
2.新建一个PartItemList用来存放分页的物品
3.每次切换标签的时候,进行计算,从ItemList里面进行筛选出对应分类的Item,添加至PartItemList
4.遍历PartItemList添加格子和物品,更新数量
5.当ItemList的Item发生变化时,即添加或移除物品,也要执行3和4步骤
实现步骤
1.复制一份背包容器的UI,并且重新命名为pnlScrollPartView
2.新建存放分页Item的List
private Dictionary<int, ItemStatus> m_ItemList; //背包中的Item
private List<ItemStatus> m_PartItemList; //背包分页中的Item
3.新建一个枚举值,存放当前所点击的标签,默认为All
private enum TabType
{
All,
Equip,
Potion,
Other
}
private TabType m_TabType = TabType.All;
4.添加向分页添加物品及刷新的方法
/// <summary>
/// 向分页添加物品
/// </summary>
private void AddItemToPartGrid(List<ItemStatus> itemList)
{
//初始化分页格子数量为PartItemList的数量
InitGrid(this.m_PnlPartGrid, itemList.Count, this.m_PartGridList);
for (int i = 0; i < itemList.Count; i++)
{
GameObject go = GameObject.Instantiate(this.m_ItemPrefab);
go