//增加物品 public void getId(int id, int count = 1) { inventoryItemGrid grid = null; //判断是否有空位置 foreach (inventoryItemGrid item in list) { if (item.id == id) { grid = item; break; } } if (grid != null)//有这个id的物品 { grid.plusNum(count); } else//没有这个物品,判断是否满了 { foreach (inventoryItemGrid item in list) { if (item.id == 0)//说明有空位置 { grid = item; break; } } if (grid != null) { GameObject go = GameObject.Instantiate(inventoryItem, Vector3.zero, Quaternion.identity, grid.transform); go.transform.localPosition = Vector3.zero; go.transform.SetSiblingIndex(0); go.GetComponentInParent <inventoryItemGrid>().setID(id, count); } } }
public void OnBeginDrag(PointerEventData eventData) { oldParent = this.transform.parent.GetComponent <inventoryItemGrid>(); bool isRect = RectTransformUtility.ScreenPointToLocalPointInRectangle(canvasRect, eventData.position, eventData.enterEventCamera, out vecPoint); if (isRect) { offsetDis = this.GetComponent <RectTransform>().anchoredPosition - vecPoint; } iconImage.raycastTarget = false; }
public void OnEndDrag(PointerEventData eventData) { GameObject go = eventData.pointerCurrentRaycast.gameObject; if (go != null) //不是空 { if (go.tag == "Inventory_item_grid") //空格子 { resetPositionAndParent(this.transform, go.transform); go.GetComponent <inventoryItemGrid>().setID(oldParent.id, oldParent.num); oldParent.ClearInfo(); } else if (go.tag == "Inventory_item")//有物品 { nowParent = go.transform.parent.GetComponent <inventoryItemGrid>(); int id = nowParent.id; int num = nowParent.num; resetPositionAndParent(this.transform, go.transform.parent.transform); nowParent.setID(oldParent.id, oldParent.num); resetPositionAndParent(go.transform, oldParent.transform); oldParent.setID(id, num); } else if (go.tag == "shortCut") { if (info.type == ObjectType.Drug) { resetPositionAndParent(this.transform, this.transform); go.GetComponent <shortCutGrid>().setDrug(id, oldParent.num); } } } else { resetPositionAndParent(this.transform, this.transform); } iconImage.raycastTarget = true; }
//减去物品 public bool MinusID(int id, int num = 1) { inventoryItemGrid grid = null; //判断是否有空位置 foreach (inventoryItemGrid item in list) { if (item.id == id) { grid = item; break; } } if (grid == null) { return(false); } else { bool success = grid.MinusNum(num); return(success); } }