示例#1
0
    public void Down()
    {
        Debug.Log("Down 누름");
        // 슬롯에 아이템이 없으면 함수종료.
        if (!slot.isSlots())
        {
            Debug.Log("슬롯에 아이템이 없으면 함수종료");
            return;
        }


        // 처음 슬롯을 선택하는 경우.
        if (!checkClick)
        {
            checkClick = true;
            // 빈 이미지의 스프라이트를 슬롯의 스프라이트로 변경한다.
            //EmptyImg.sprite = slot.ItemReturn().DefaultImg;
            // 빈 이미지의 위치를 마우스위로 가져온다.
            //Img.transform.position = Input.mousePosition;
        }

        // 슬롯을 두 번째 선택하는 경우 Swap
        else if (checkClick)
        {
            // isSlots플래그가 false이면 슬롯에 아이템이 존재하지 않는 것이므로 함수 종료.
            if (!slot.isSlots())
            {
                return;
            }

            Debug.Log("스왑함수 호출");
            Img.transform.position = Input.mousePosition;
            // 싱글톤을 이용해서 인벤토리의 스왑함수를 호출(현재 슬롯, 빈 이미지의 현재 위치.)
            ObjectManager.Call().unitSlots.Swap(slot, Img.transform.position);
            checkClick = false;
            //slot = null;
        }
    }
示例#2
0
    // 아이템 옮기기 및 교환.
    public void Swap(Unit_Slot slot, Vector3 Pos)
    {
        Unit_Slot FirstSlot = NearDisSlot(Pos);

        // 현재 슬롯과 옮기려는 슬롯이 같으면 함수 종료.
        if (slot == FirstSlot || FirstSlot == null)
        {
            slot.UpdateInfo(true, slot.slot.Peek().DefaultImg);
            return;
        }

        // 가까운 슬롯이 비어있으면 옮기기.
        if (!FirstSlot.isSlots())
        {
            //Swap(FirstSlot, slot);
        }
        // 교환.
        else
        {
            int                Count = slot.slot.Count;
            ItemObject         item  = slot.slot.Peek();
            Stack <ItemObject> temp  = new Stack <ItemObject>();

            {
                for (int i = 0; i < Count; i++)
                {
                    temp.Push(item);
                }

                slot.slot.Clear();
            }

            Swap(slot, FirstSlot);

            {
                Count = temp.Count;
                item  = temp.Peek();

                for (int i = 0; i < Count; i++)
                {
                    FirstSlot.slot.Push(item);
                }

                FirstSlot.UpdateInfo(true, temp.Peek().DefaultImg);
            }
        }
    }