// 아이템을 살 때는 빈 곳 부터 채우기 // 아이템 살 때 발생하는 이벤트 // 아이템을 살 때, 동시에 캐릭터 스텟을 가져와ㅅ 캐릭터 스텟을 올려준다. public void OnDropItemBuyEvent(Item draggedItem) { if (PlayerItems.Count == 6) { Debug.Log("Full Inventory"); return; } if (Managers.Game.Player.GetComponent <CharacterStat>().Gold < draggedItem.GetComponent <ItemStat>().Price) { Debug.Log("lack of Money"); return; } Managers.Game.Player.GetComponent <CharacterStat>().Gold -= draggedItem.GetComponent <ItemStat>().Price; Item newItem = Managers.Resource.Instantiate($"Prefabs/Item/{draggedItem.name}").GetComponent <Item>(); foreach (Transform child in transform.GetComponentInChildren <Transform>()) { if (child.childCount == 0) { newItem.transform.SetParent(child); break; } else { continue; } } RectTransform rectTransform = newItem.GetComponent <RectTransform>(); rectTransform.localPosition = Vector2.zero; rectTransform.localScale = Vector3.one; PlayerItems.Add(newItem); // 아이템 장착 후 캐릭터 스텟 수정 { if (Managers.Game.Player == null) { return; } CharacterStat characterStat = Managers.Game.Player.GetComponent <PlayerController>().Stat; // newItem은 아직 Start가 실행되지 않기 때문에, draggedItem으로 접근해야한다. ItemStat itemStat = draggedItem.ItemStat; characterStat.ItemEquipment(itemStat); } }