public void Comelpete() { player = GameObject.FindGameObjectWithTag("Player").transform; allItem = GameObject.Find("ItemInformationManager").GetComponent <J_ItemInformationManager>(); for (int i = 0; i < allItem.comelpetes.Length; i++) { J_Item _Item = allItem.comelpetes[i].GetComponent <J_Item>(); if (_Item.itemName == J_Mune.mune.buttonNmb.GetComponent <J_ToolButtonInfo>().completeName) { print("완성품입니다"); GameObject a = Instantiate(allItem.comelpetes[i]); a.transform.position = player.position; } } }
//눈에 보이지는 않지만 내부적으로 인ㅂ넨토리 안을 채워줍니다 public void ClicksItem(GameObject x) { for (int i = 0; i < items2.Length; i++) { J_Item j_Item = x.GetComponent <J_Item>(); //가장 먼저 배열 클래스에 자신과 동일한 것이 있는지 확인해줍니다 //있으면 갯수만 늘려주고 탈출합니다 if (items2[i] != null) { if (items2[i].itemName == j_Item.itemName) { //이름이 동일하지만 타입이 만약에 무기이면 if (j_Item.type == J_Item.ItemType.WEAPON) { continue; } items2[i].auount += j_Item.auount; Destroy(x); break; } } //해당 배열클래스의이름이 비어있으면 그 배열 클래스로 정해줍니다 else if (items2[i] == null) { items2[i] = j_Item; items2[i].auount = x.GetComponent <J_Item>().auount; items2[i].itemImage = j_Item.itemImage; items2[i].my = x; //받아드려오는 오브젝트의 내부속 이름 // items2[i].itemName = j_Item.itemName; //오브젝트의 이미지 스프라이트 설정해줍니다 // items2[i].itemImage = j_Item.itemImage; // items2[i].auount++; break; } } }
void Actions2() { J_Slots a = _Slots.GetComponent <J_Slots>(); //자기 인벤토리에서 실행하는 상태입니다 if (state == State.MYINVENYROY) { for (int i = 0; i < J_ItemManager.j_Item.items2.Length; i++) { if (J_ItemManager.j_Item.items2[i].itemName == a.name) { J_ItemManager.j_Item.items2[i].auount -= clickButton.GetComponent <J_SclectButton>().ss; if (clickButton.GetComponent <J_SclectButton>().ss != a.itemMy.GetComponent <J_Item>().auount) { GameObject x = Instantiate(a.itemMy); x.transform.position = player.transform.position; x.GetComponent <J_Item>().auount = clickButton.GetComponent <J_SclectButton>().ss; } //만약 슬롯의 아이템 갯수가 0이면 그 자리를 비워줘야합니다 if (J_ItemManager.j_Item.items2[i].auount == 0) { //아이템이 없기 때문에 이미지도 비활성화 해줍니다 J_Inventory.j_Inventory.items[i].GetComponent <J_Slots>().mainIamge.SetActive(false); //아이템이 없기 때문에 null값을 넣어줍니다 J_ItemManager.j_Item.items2[i] = null; } break; } } a.itemMy.transform.position = player.transform.position; a.itemMy.GetComponent <J_Item>().auount = clickButton.GetComponent <J_SclectButton>().ss; a.itemMy.SetActive(true); /* GameObject mm = Instantiate(a.itemMy); * mm.SetActive(true); * mm.GetComponent<J_Item>().auount = clickButton.GetComponent<J_SclectButton>().ss; * mm.transform.position = player.transform.position; */ } //창고에서 인벤토리로 꺼내는 조건입니다 else if (state == State.LOCKER) { J_Slots slotss = _Slots.GetComponent <J_Slots>(); for (int i = 0; i < J_ItemManager.j_Item.items2.Length; i++) { //만약에 같은 이름이 있다면 거기에 넣어준다 if (J_ItemManager.j_Item.items2[i] != null && J_ItemManager.j_Item.items2[i].itemName == _Slots.GetComponent <J_Slots>().name) { J_ItemManager.j_Item.items2[i].auount += clickButton.GetComponent <J_SclectButton>().ss; break; } //하지만 같은 이름이 존재하지 않고 자리가 남아있다면 else if (J_ItemManager.j_Item.items2[i] == null) { for (int j = 0; j < infoItem.GetComponent <J_ItemInformationManager>().allItems.Length; j++) { if (_Slots.GetComponent <J_Slots>().name == infoItem.GetComponent <J_ItemInformationManager>().allItems[j] .GetComponent <J_Item>().itemName) { GameObject item = Instantiate(infoItem.GetComponent <J_ItemInformationManager>().allItems[j]); item.transform.position = player.transform.position; J_Item j_Item = item.GetComponent <J_Item>(); J_ItemManager.j_Item.items2[i] = j_Item; J_ItemManager.j_Item.items2[i].auount = clickButton.GetComponent <J_SclectButton>().ss; J_ItemManager.j_Item.items2[i].itemImage = j_Item.itemImage; J_ItemManager.j_Item.items2[i].my = item; item.SetActive(false); break; } } break; } } //이제 여기서 창고에 있는 아이를 죽인다 slotss.MySeilf(slotss.name, slotss.Image.sprite, int.Parse(slotss.text.text) - clickButton.GetComponent <J_SclectButton>().ss); if (slotss.text.text == "") { slotButton.SetActive(false); slotss.MySeilf(null, null, 0); slotss.mainIamge.SetActive(false); } } //자신 인벤토리에서 창고로 넣어주는 상태입니다 else if (state == State.LOCKERINVENTROY) { J_Slots slotss = _Slots.GetComponent <J_Slots>(); for (int i = 0; i < J_LockerInvs.j_LockerInvs.items.Count; i++) { if (J_LockerInvs.j_LockerInvs.items[i] != null) { //int.Parse(gameObject.GetComponent<J_Slots>().text.text) //J_LockerInvs.j_LockerInvs.items[i] = gameObject.GetComponent<J_Slots>(); J_LockerInvs.j_LockerInvs.items[i].GetComponent <J_Slots>().mainIamge.SetActive(true); if (J_LockerInvs.j_LockerInvs.items[i].GetComponent <J_Slots>().text.text == "") { J_LockerInvs.j_LockerInvs.items[i].GetComponent <J_Slots>().MySeilf( gameObject.GetComponent <J_Slots>().name, gameObject.GetComponent <J_Slots>().Image.sprite, clickButton.GetComponent <J_SclectButton>().ss); } else if (J_LockerInvs.j_LockerInvs.items[i].GetComponent <J_Slots>().text.text != "" && slotss.name == J_LockerInvs.j_LockerInvs.items[i].GetComponent <J_Slots>().name) { J_LockerInvs.j_LockerInvs.items[i].GetComponent <J_Slots>().MySeilf( gameObject.GetComponent <J_Slots>().name, gameObject.GetComponent <J_Slots>().Image.sprite, clickButton.GetComponent <J_SclectButton>().ss + int.Parse(J_LockerInvs.j_LockerInvs.items[i].GetComponent <J_Slots>().text.text)); } else { continue; } //이 위까지 창고로 넣어주는 명령어입니다 //아래는 이제 인벤토리에서 지우는 명령어 입니다 for (int j = 0; j < J_ItemManager.j_Item.items2.Length; j++) { //지금 창고에 넣을 아이템 이름과 아이템 메니저의 이름을 검사해서 두개가 동일하면 다음 if문을 실행합니다 if (J_LockerInvs.j_LockerInvs.items[i].GetComponent <J_Slots>().name == J_ItemManager.j_Item.items2[j].itemName) { J_ItemManager.j_Item.items2[j].auount -= clickButton.GetComponent <J_SclectButton>().ss; //J_LockerInventroy //이걸로 수정해야합니다 생각해보니깐 아까부터 계속해서 창고에 있는 아이랑 계산해주고 //있었네 ㅁㅊ ㄷㄷㄷ ButtonClicks(); if (J_ItemManager.j_Item.items2[j].auount == 0) { // J_ItemManager.j_Item.items2[j].GetComponent<> slotButton.SetActive(false); //J_Inventory.j_Inventory.items[j].GetComponent<J_Slots>().mainIamge.SetActive(false); J_ItemManager.j_Item.items2[j] = null; } break; } } break; } } } }