コード例 #1
0
    public void Down()
    {
        // 슬롯에 아이템이 없으면 함수종료.
        if (!slot.isSlots())
        {
            return;
        }

        // 아이템 사용시.
        if (Input.GetMouseButtonDown(1))
        {
            slot.WeaponThrow();
            return;
        }

        // 빈 이미지 객체를 활성화 시킨다.
        Img.gameObject.SetActive(true);

        // 빈 이미지의 사이즈를 변경한다.(해상도가 바뀔경우를 대비.)
        float Size = slot.transform.GetComponent <RectTransform>().sizeDelta.x;

        EmptyImg.rectTransform.SetSizeWithCurrentAnchors(RectTransform.Axis.Horizontal, Size);
        EmptyImg.rectTransform.SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, Size);

        // 빈 이미지의 스프라이트를 슬롯의 스프라이트로 변경한다.
        EmptyImg.sprite = slot.WeaponReturn().DefaultImg;
        // 빈 이미지의 위치를 마우스위로 가져온다.
        Img.transform.position = Input.mousePosition;
        // 슬롯의 아이템 이미지를 없애준다.
        slot.UpdateInfo(true, slot.DefaultImg);
        // 슬롯의 텍스트 숫자를 없애준다.
        slot.text.text = " [ " + slot.slotNumber + " ] ";
    }
コード例 #2
0
ファイル: InventoryCtrl.cs プロジェクト: hbhdy/TheLastOne
    // 무기 옮기기 및 교환.
    public void WeaponSwap1(WeaponSlotCtrl value, Vector3 Pos)
    {
        WeaponSlotCtrl FirstSlot = NearDisWeaponSlot(Pos);

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

        // 가까운 슬롯이 비어있으면 옮기기.
        if (!FirstSlot.isSlots())
        {
            WeaponSwap2(FirstSlot, value);
            swapType();
        }
        // 교환.
        else
        {
            int                Count  = value.weaponSlot.Count;
            WeaponCtrl         weapon = value.weaponSlot.Peek();
            Stack <WeaponCtrl> temp   = new Stack <WeaponCtrl>();

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

                value.weaponSlot.Clear();
            }

            WeaponSwap2(value, FirstSlot);
            swapType();

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

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

                FirstSlot.UpdateInfo(true, temp.Peek().DefaultImg);
            }
        }
    }
コード例 #3
0
ファイル: InventoryCtrl.cs プロジェクト: hbhdy/TheLastOne
    // 무기!!!!!!!!!! 1: 비어있는 슬롯, 2: 안 비어있는 슬롯.
    void WeaponSwap2(WeaponSlotCtrl xFirst, WeaponSlotCtrl oSecond)
    {
        int        Count  = oSecond.weaponSlot.Count;
        WeaponCtrl weapon = oSecond.weaponSlot.Peek();

        for (int i = 0; i < Count; i++)
        {
            if (xFirst != null)
            {
                xFirst.weaponSlot.Push(weapon);
            }
        }

        if (xFirst != null)
        {
            xFirst.UpdateInfo(true, oSecond.WeaponReturn().DefaultImg);
        }

        oSecond.weaponSlot.Clear();
        oSecond.UpdateInfo(false, oSecond.DefaultImg);
    }