예제 #1
0
    //增加物品
    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);
            }
        }
    }
예제 #2
0
    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;
    }
예제 #3
0
    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;
    }
예제 #4
0
    //减去物品
    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);
        }
    }