728x90
오늘은 아이템 팝업창 생성 및 아이템 추가 제거를 진행하였다.
public GameObject ExplainPanel;//팝업창 패널
IEnumerator pointercoroutine; //코루틴 스타트 스탑 해주기위해 선언
public void PointerEnter(int slotNum)//포인터가 슬롯에 들어왓을때
{
pointercoroutine =Delay(slotNum);// 위에 선언한 코루틴에 delay코루틴 넣어주고
StartCoroutine(pointercoroutine);//스타트 코루틴
ExplainPanel.GetComponentInChildren<Text>().text = CurItemList[slotNum].Name;//첫번째 텍스트 찾아서 curitelist 슬롯넘버랑 같은 이름을 가져오고
ExplainPanel.transform.GetChild(2).GetComponent<Image>().sprite = Slot[slotNum].transform.GetChild(1).GetComponent<Image>().sprite; // 3번째에있는 자식 이미지 가져와서 슬롯에 2번째에 있는 이미지대입
ExplainPanel.transform.GetChild(3).GetComponent<Text>().text = CurItemList[slotNum].Explain;// 4번째에있는 자식 text 가져와서 explain 넣음
}
IEnumerator Delay(int slotNum)// 딜레이 0.5 초 주기위해
{
yield return new WaitForSeconds(0.3f);
ExplainPanel.SetActive(true);// 설명판넬 true
}
public void PointerExit(int slotNum)//포인터가 나가면
{
StopCoroutine(pointercoroutine);// 스탑코루틴
ExplainPanel.SetActive(false);//설명판넬 false
}
이렇게 코드를 추가해주고

슬롯에 이벤트 트리거 추가후
enter는 들어갈때 exit을 나올때고 slot 인덱스와 똑같이 번호지정후 실행하면 저렇게되고
public void GetItem(Item getitem) // 아이템 얻을 경우 얻는 아이템 받아오고
{
if(getitem.ItemType != "Eqipment" && getitem.ItemType != "Accessory") // 아이템타입이 장비,액세서리가 아니라면
{
Item curitem = MyItemList.Find(x=>x.Name==getitem.Name); // 현재아이템은 내 아이템 리스트중 getitem 과 이름이 같은걸 찾고
if(curitem != null) // null 이 아니면 같은걸 찾아진거고
{
curitem.Number = (int.Parse(getitem.Number)+int.Parse(curitem.Number)).ToString(); // 현재아이템 갯수는 전달받은아이템정보 + 현재아이템
}
else
{
//여기에는 아닌경우 myitemlist에 add 해줘야하는코드 작성
}
}
else // 장비인경우 마이아이템 리스트 추가해줘야하는 코드 추가
{
}
Save();
}
public void RemoveItem(Item useItem)
{
if (useItem.ItemType != "Eqipment" && useItem.ItemType != "Accessory")//아이템타입 장비,액세서리 아니면
{
Item curitem = MyItemList.Find(x=>x.Name == useItem.Name); //현재아이템 내아이템 리스트중 useitem 과 같은거를찾고
if(curitem!=null)//아이템이 null 이 아니면 이미 같은종류 아이템이 있는거라서
{
int curNumber = int.Parse(curitem.Number) - int.Parse(useItem.Number); // 마이아이템 갯수 - 쓴아이템갯수
if (curNumber <= 0) MyItemList.Remove(curitem);// 0보다 작거나 같다면 remove 해준다
else curitem.Number = curNumber.ToString(); // 0보다 크다면 남아있는 아이템갯수 표시
}
}
else // 장비인경우 추가
{
}
}
일단은 이런식으로 코드가 짜여졌다.
아이템 얻는거는
몬스터를 잡을때 아이템 갯수는 1~3개 중 나올거고
장비아이템이 나올확률은 15% 악세서리 15% 포션류 70% 할 예정이다. 아이템을 추가로 더 만드는건 의미가 없다 생각해서 기능만 구현하고 빠르게 포폴을 끝내고 면접준비 및 코테준비를 할 예정이며, 추가로 오늘은 면접 준비를 차근차근 하기위해 면접을위한cs전공지식 노트 책을사서 오전에는 cs공부를하고 오후에 포폴작업을 했으며.
아마 앞으로도 계속 오전에는 cs공부 및 코테준비, 오후에는 포폴작업을 할 예정이고 포폴이 마무리되는대로 오전 오후 둘다 코테 및 cs공부를 할 예정이다.
반응형
'개인프로젝트 3D RPG 개발일지' 카테고리의 다른 글
22.(유니티포폴) 몬스터HP 바 및 캐릭터 HP,MP바 구현 (0) | 2022.07.14 |
---|---|
21.(유니티포폴) 아이템 드랍 (0) | 2022.07.13 |
19.코딩테스트 준비 (0) | 2022.07.11 |
19.(유니티포폴) 인벤토리구현 (0) | 2022.07.08 |
18.(유니티 포폴) 인벤토리 구현 (0) | 2022.07.06 |