아이템 데이터, 인벤토리 기능 만들어둔게 계속 맘에 안들어서 과감히 삭제하고 로직을 다시 짰다.
그나마 전보다 나은거같아서 넘어가긴 하지만 아직도 맘에 들진 않는다.
인벤토리 수정
원래는 아이템 타입별로 나누지는 않으려고 했는데..
그래도 만드는김에 하는게 좋을것같아서 로직도 다시짜고 장비/소비/기타 탭으로 나누었다.
아이템을 획득했을때 인벤토리에 넣는 방식도 조금 더 나은 방향으로 수정했다.
보통 장비는 소비,기타템처럼 한 슬롯에 뭉쳐지지 않고 같은 장비를 2개 가지고 있더라도 구분이 되어야하기 때문에
장비를 먹으면 장비마다 각각 다른 번호를 랜덤으로 부여해줬다. 나중에는 이 값으로 비교를 해보면 된다.
나머지 템들은 없다면 인벤토리에 새롭게 생성하고, 있으면 아이템 카운트만 늘려주는 방식으로 만들었다.
퀵 슬롯 구현
스크립터블 오브젝트에 각각 아이템별로 기능을 델리게이트나 유니티액션으로 만들어서 쓰고싶었는데 마땅한 방법이 없었다. 그냥 만들수는 있지만 나중에 따로 내가 손댈필요 없이 데이터 안에 기능을 넣어두고 꺼내서 쓰고 싶었다.
[System.Serializable]
public abstract class ItemData : ScriptableObject
{
public ItemType myType;
public int ItemCode;
public string ItemName;
[TextArea]
public string Description;
//나머지 변수들은 생략
public abstract void UseItem();
그래서 이런식으로 스크립터블 오브젝트를 추상클래스로 만들어두고 UseItem이라는 추상함수를 만들었다.
그리고 UseItemData / NonUseItemData 라는 2개의 클래스를 만들어서 UseItemData클래스에서만 기능을 만들어 주었다.
두 클래스 모두 ItemData라는 추상클래스를 상속받았기 때문에
퀵슬롯에 등록해서 누르면 ItemData의 UseItem() 이라는 함수를 쓰면 끝이다.
장비 장착기능
처음에 데미지가 24가 뜨다가 127이 뜨는것을 볼 수 있다.
그리고 아이콘 드래그하는걸 조금 바꿨는데 지금까지 왜 굳이 어려운 방식으로 계속 하고있었는지 싶었다.
다른 게임들은 드래그를 어떤식으로 하는지 생각이 안나서 메이플스토리 인벤토리 영상을 조금 찾아봤는데,
인벤토리에 있는 아이콘이 움직이는게 아니라 드래그를 시작하면 복사 된 것 처럼 같은 아이콘이 알파값을 조금 낮춘 상태로 마우스 위치에 생성돼서 드래그 되는것을 보고 아.. 저런식으로 처리하는게 더 깔끔하겠구나 싶어서 바로 바꿨다.
다음 계획
계속 작업하다가 머리가 아파서 잠시 누웠는데 너무 푹자고 일어나서 글을 쓴거라 밥먹고 또 작업을 해야한다.
오늘은 상점과 퀘스트를 만들어서 전체적인 진행 틀을 짜 볼 예정이다.
개인포폴 17일차 작업 끝
'개발일지 > Unity 개인 포트폴리오 개발일지' 카테고리의 다른 글
개인포폴 19일차 / 알림시스템 수정 & 레벨업 그리고 대화와 퀘스트 (0) | 2022.07.05 |
---|---|
개인포폴 18일차 / 오브젝트 풀링 & 상점 구현 (0) | 2022.07.04 |
개인포폴 16일차 / 자잘한 작업들 (0) | 2022.07.02 |
개인포폴 15일차 / 드랍 아이템과 인벤토리 (2) | 2022.07.01 |
개인포폴 14일차 / 사운드 옵션 & 아이템 구현 & 알림 시스템 (0) | 2022.06.30 |
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!