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 + " ] "; }
// 무기 옮기기 및 교환. 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); } } }
// 무기!!!!!!!!!! 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); }