public bool TakeItem(ItemClass itemToPut, bool ignoreDistRestrict = false) { if (!ignoreDistRestrict && Vector3.Distance(itemToPut.transform.position, transform.position) > StandardVariables.InteractableDistance) { return(false); } if (CurrentOccupiedCapacity < MaxCapacity && gridManager.StoreItemDirectly(itemToPut.gameObject)) { CurrentOccupiedCapacity += itemToPut.Weight; havingItemList.Add(itemToPut); // TODO : 아이템 기록 로그 Debug.Log("아이템을 입수했습니다. Inventory : (" + MaxCapacity + "/" + CurrentOccupiedCapacity + "). 입수 아이템 : " + itemToPut.name); return(true); // Item put success } else { Debug.Log("가방이 꽉 차서 아이템을 넣을 수 없습니다."); return(false); // Item put fail } }
private void SpawnOrAddItem(ItemClass passedItem) { if (willAddToList)// add to list directly { sortManager.AddItemToList(passedItem); Debug.Log("Item added to list"); } else if (willAddToGrid)// add to grid directly { GameObject itemObj = itemEquipPool.GetObject(); itemObj.GetComponent <ItemScript>().SetItemObject(passedItem); // 그리드로 직접 저장이 실패한 경우 아이템을 다시 풀로 반환 if (invenManager.StoreItemDirectly(itemObj) == false) { itemEquipPool.ReturnObject(itemObj); } } else //spawn item on mouse { GameObject itemObject = itemEquipPool.GetObject(); itemObject.GetComponent <ItemScript>().SetItemObject(passedItem); ItemScript.SetSelectedItem(itemObject); } }