void MovingInventoryItem() { if (moveInventoryItem) { if (Input.GetMouseButton(0)) { Vector3 screenSpace = MainCamera.WorldToScreenPoint(moveInventoryItemObj.transform.position); Vector3 mousePosition = MainCamera.ScreenToWorldPoint( new Vector3(Input.mousePosition.x, Input.mousePosition.y, screenSpace.z)); moveInventoryItemObj.transform.position = mousePosition; if (!CheckMousePos()) { slot = null; } } else if (Input.GetMouseButtonUp(0)) { if (slot != null) { // 아이템이 원래 인벤토리에 있었다면... if (moveInventoryItemObj.GetComponent <Item>().onInventory == PlayerInventory.transform) { // 슬롯이 플레이어 인벤토리의 슬롯이면.. if (PlayerInventory.CheckSlotParent(slot)) { Debug.Log("인벤 -> 인벤"); PlayerInventory.InventoyItemMove(moveInventoryItemObj, slot); } else if (PlayerEquipment.CheckSlotParent(slot)) { Debug.Log("인벤 -> 장비"); // 실패 시 if (!PlayerEquipment.EquipItem(moveInventoryItemObj, slot)) { // 다시 인벤토리로 돌아가기 PlayerInventory.ReturnInvenItem(moveInventoryItemObj); } // 성공 시 인벤토리 슬롯 비우기 else { PlayerInventory.SetInventoryEmpty(moveInventoryItemObj); } } // 박스의 슬롯이면.. else if (GameManager.Instance.BoxComponent.CheckSlotParent(slot)) { Debug.Log("인벤 => 박스"); if (GameManager.Instance.BoxComponent.CheckEmptySlot(slot)) { PlayerInventory.InvenToInven(GameManager.Instance.BoxComponent, moveInventoryItemObj, slot); } else { PlayerInventory.ReturnInvenItem(moveInventoryItemObj); } } } // 아이템이 원래 박스에 있었다면.. else if (moveInventoryItemObj.GetComponent <Item>().onInventory == GameManager.Instance.BoxInventory.transform) { // 슬롯이 플레이어 인벤토리의 슬롯이면.. if (PlayerInventory.CheckSlotParent(slot)) { Debug.Log("박스 => 인벤"); if (PlayerInventory.CheckEmptySlot(slot)) { GameManager.Instance.BoxComponent.InvenToInven(PlayerInventory, moveInventoryItemObj, slot); } else { GameManager.Instance.BoxComponent.ReturnInvenItem(moveInventoryItemObj); } } else if (PlayerEquipment.CheckSlotParent(slot)) { Debug.Log("박스 => 장비창"); // ... if (!PlayerEquipment.EquipItem(moveInventoryItemObj, slot)) { // 다시 인벤토리로 돌아가기 GameManager.Instance.BoxComponent.ReturnInvenItem(moveInventoryItemObj); } // 성공 시 인벤토리 슬롯 비우기 else { GameManager.Instance.BoxComponent.SetInventoryEmpty(moveInventoryItemObj); } } // 박스의 슬롯이면.. else if (GameManager.Instance.BoxComponent.CheckSlotParent(slot)) { Debug.Log("박스 -> 박스"); GameManager.Instance.BoxComponent.InventoyItemMove(moveInventoryItemObj, slot); } } else if (moveInventoryItemObj.GetComponent <Item>().onInventory == PlayerEquipment.transform) { // 슬롯이 플레이어 인벤토리의 슬롯이면.. if (PlayerInventory.CheckSlotParent(slot)) { Debug.Log("장비 => 인벤"); PlayerEquipment.TakeOffEquip(PlayerInventory, moveInventoryItemObj, slot); } else if (PlayerEquipment.CheckSlotParent(slot)) { Debug.Log("장비 => 장비창"); // ... PlayerEquipment.EquipToEquip(moveInventoryItemObj, slot); } // 박스의 슬롯이면.. else if (GameManager.Instance.BoxComponent.CheckSlotParent(slot)) { Debug.Log("장비 -> 박스"); PlayerEquipment.TakeOffEquip(GameManager.Instance.BoxComponent, moveInventoryItemObj, slot); } } } else { // 인벤에서 버릴때 if (moveInventoryItemObj.GetComponent <Item>().onInventory == PlayerInventory.transform) { PlayerInventory.PullItem(moveInventoryItemObj); } // 박스에서 버릴때 else if (moveInventoryItemObj.GetComponent <Item>().onInventory == GameManager.Instance.BoxInventory.transform) { GameManager.Instance.BoxComponent.PullItem(moveInventoryItemObj); } else if (moveInventoryItemObj.GetComponent <Item>().onInventory == PlayerEquipment.transform) { PlayerEquipment.PullItem(moveInventoryItemObj); } } moveInventoryItem = false; moveInventoryItemObj = null; } } }