/// <summary> /// 快捷栏的item List /// </summary> void InitShortcutItemGridList() { m_lstShortcutSetItemGrid.Clear(); //用于UI缓存的grid m_lstShortcutSetItem = DataManager.Manager <SettingManager>().GetShortcutSetItemList(); //我们需要的数据list m_fixedShortcutItemCount = DataManager.Manager <SettingManager>().FixedShortcutItemCount; for (int i = 0; i < m_trans_CoteContent.childCount; i++) { Transform gridTransf = m_trans_CoteContent.GetChild(i); UIShortcutSetItemGrid grid = gridTransf.gameObject.GetComponent <UIShortcutSetItemGrid>(); if (grid == null) { grid = gridTransf.gameObject.AddComponent <UIShortcutSetItemGrid>(); } if (i < m_lstShortcutSetItem.Count) { grid.SetGridData(m_lstShortcutSetItem[i]); grid.RegisterUIEventDelegate(OnShortcutItemGirdEventDlg); m_lstShortcutSetItemGrid.Add(grid); //用于UI缓存的grid } } }
void SetSelectSetItemGrid1(ShortCuts item) { //CleanSetItemGridSelectState(); UIShortcutSetItemGrid newSetItemGrid = m_lstShortcutSetItemGrid.Find((data) => { return(data.itemData.itemid == item.itemid && data.itemData.id == item.id); }); if (newSetItemGrid != null) { newSetItemGrid.SetSelect(true); } }
void UpdateShortcutSetItemGridList(ShortCuts oldItemData, ShortCuts itemData) { UIShortcutSetItemGrid grid = m_lstShortcutSetItemGrid.Find((d) => { return(d.itemData.itemid == itemData.itemid); }); if (grid != null) { if (grid.itemData.id != itemData.id) { ShortCuts tempItem = new ShortCuts(); tempItem.id = grid.itemData.id; tempItem.itemid = oldItemData.itemid; //点到的grid设置为最新 UIShortcutSetItemGrid tempGrid = m_lstShortcutSetItemGrid.Find((d) => { return(d.itemData.id == itemData.id); }); tempGrid.SetGridData(itemData); //已经存在的,设置为点到的grid之前的数据 grid.SetGridData(tempItem); for (int i = 0; i < m_lstShortcutSetItemGrid.Count; i++) { if (m_lstShortcutSetItemGrid[i].itemData.id == itemData.id) { m_lstShortcutSetItemGrid[i].itemData.itemid = itemData.itemid; } if (m_lstShortcutSetItemGrid[i].itemData.id == tempItem.id) { m_lstShortcutSetItemGrid[i].itemData.itemid = tempItem.itemid; } } } } else { //找到当前位置 UIShortcutSetItemGrid newGrid = m_lstShortcutSetItemGrid.Find((d) => { return(d.itemData.id == itemData.id); }); newGrid.SetGridData(itemData); for (int i = 0; i < m_lstShortcutSetItemGrid.Count; i++) { if (m_lstShortcutSetItemGrid[i].itemData.id == itemData.id) { m_lstShortcutSetItemGrid[i].itemData.itemid = itemData.itemid; } } } }
/// <summary> /// 清除快捷栏选中状态 /// </summary> //void CleanSetItemGridSelectState() //{ // for (int i = 0; i < m_lstShortcutSetItemGrid.Count; i++) // { // m_lstShortcutSetItemGrid[i].SetSelect(false); // m_lstShortcutSetItemGrid[i].clicks = 0; // } //} //void CleanOtherSetItemGridSelectClicks(ShortCuts item) //{ // for (int i = 0; i < m_lstShortcutSetItemGrid.Count; i++) // { // if (item.id == m_lstShortcutSetItemGrid[i].itemData.id) // { // continue; // } // m_lstShortcutSetItemGrid[i].clicks = 0; // } //} void RemoveSetItem(UIShortcutSetItemGrid grid) { ShortCuts itemData = new ShortCuts { id = grid.itemData.id, itemid = 0 }; grid.SetGridData(itemData); for (int i = 0; i < m_lstShortcutSetItemGrid.Count; i++) { if (m_lstShortcutSetItemGrid[i].itemData.id == grid.itemData.id) { m_lstShortcutSetItemGrid[i].itemData.itemid = 0; } } }
/// <summary> /// 交换 /// </summary> void ExchangeItem(uint newIndex, uint newItemId, uint oldIndex, uint oldItemId) { //oldItem 赋最新点击的值 UIShortcutSetItemGrid oldSetItemGrid = m_lstShortcutSetItemGrid.Find((data) => { return(data.itemData.id == oldIndex); }); if (oldSetItemGrid != null) { ShortCuts itemData = new ShortCuts { id = oldIndex, itemid = newItemId }; oldSetItemGrid.SetGridData(itemData); } //newItem 赋上次点击的值 UIShortcutSetItemGrid newSetItemGrid = m_lstShortcutSetItemGrid.Find((data) => { return(data.itemData.id == newIndex); }); if (newSetItemGrid != null) { ShortCuts itemData = new ShortCuts { id = newIndex, itemid = oldItemId }; newSetItemGrid.SetGridData(itemData); } }
/// <summary> /// 快捷栏点击事件 /// </summary> /// <param name="eventType"></param> /// <param name="data"></param> /// <param name="param"></param> private void OnShortcutItemGirdEventDlg(UIEventType eventType, object data, object param) { if (eventType == UIEventType.Click) { UIShortcutSetItemGrid grid = data as UIShortcutSetItemGrid; if (grid == null) { return; } //如果点击的是grid的移除按钮 if (param != null) { int removeBtn = (int)param; if (removeBtn == 1) { RemoveSetItem(grid); return; } } //点的是grid //第二次点击取消选中 //if (grid.clicks >= 1) //{ // CleanSetItemGridSelectState(); // this.m_selectSetItem = new ShortCuts { id = 0, itemid = 0 }; // return; //} //快捷栏选中 //SetSelectSetItemGrid(grid.itemData); //设置 if (m_clickShortcutBefore == false) { ShortCuts itemData = new ShortCuts { id = grid.itemData.id, itemid = m_selectItemId }; UpdateShortcutSetItemGridList(grid.itemData, itemData); } /* * //1、上次点的是物品栏,2、快捷栏为空 * if (m_clickShortcutBefore == false && grid.itemData.itemid == 0) * { * ShortCuts itemData = new ShortCuts { id = grid.itemData.id, itemid = m_selectItemId }; * grid.SetGridData(itemData); * } * * //1、上次点的是物品栏,2、对应快捷栏不为空或为空 * UIShortcutSetItemGrid tempGrid = m_lstShortcutSetItemGrid.Find((gridData) => { return gridData.itemData.itemid == m_selectItemId; }); * if (m_clickShortcutBefore == false) * { * if (tempGrid != null) //对应快捷栏不为空 * { * ExchangeItem(grid.itemData.id, grid.itemData.itemid, tempGrid.itemData.id, tempGrid.itemData.itemid); * } * else //对应快捷栏为空 * { * ShortCuts itemData = new ShortCuts { id = grid.itemData.id, itemid = m_selectItemId }; * grid.SetGridData(itemData); * } * } */ //上次点击的是快捷栏,交换 //if (m_clickShortcutBefore == true) //{ // UIShortcutSetItemGrid oldSetItemGrid = m_lstShortcutSetItemGrid.Find((d) => { return d.itemData.itemid == m_selectSetItem.itemid && d.itemData.id == m_selectSetItem.id; }); // if (oldSetItemGrid != null) // { // ExchangeItem(grid.itemData.id, grid.itemData.itemid, oldSetItemGrid.itemData.id, oldSetItemGrid.itemData.itemid); // } //} //设置物品栏选中 if (grid.itemData.itemid != 0) { SetSelectItemGird(grid.itemData.itemid); } this.m_selectSetItem = grid.itemData; //把最新选中的Item 赋值给m_selectSetItemId m_clickShortcutBefore = true; } }