이전엔 슬롯을 오브젝트풀로 생성하고, 아이템을 습득했을 때, 인벤토리에 아이템이 추가되는것까지 완료하였다.
하지만, 인벤토리에 아이템이 추가되면 다음과 같이 뜬다.
아이템이 뭔가 안예쁘게 정리되는 감이 있다... ㅠㅠ
일단 슬롯간 구분을 위해 아이템 슬롯부터 좀 꾸며보자.
이전에 설명했던대로, 만들었던 프리팹을 더블클릭해서 프리펩 편집화면으로 들어오자.
이제 이걸 꾸며줄건데, 간단하게 도트를 찍어서 꾸미자.
나도 도트에 대해선 미적 감각이 부족하지만, 스팀의 Aseprite를 사용해 찍을것이다.
(스팀에서 할인할때 하나 구비해두자. 꽤 쓸모가 많다.)
Aseprite on Steam
Aseprite is a pixel-art tool to create 2D animations, sprites, and any kind of graphics for games.
store.steampowered.com
지금은 2만원인데 가끔 세일하니까 그때 사자.
이런식으로 만들었다. 하단에는 카운트를 표시하도록 만들었다.
그리고, 이미지를 표시하기위해 다음과 같이 구성하였다.
이제 저장하고, 프리펩 편집을 나오자.
이제 이 이미지가 잘 적용되는지 확인해야된다.
그 전에 코드를 약간 수정해줘야한다.
//아이템 습득
private void OnTriggerStay2D(Collider2D other) {
if(other.tag == "Item"){ //태그 확인
if(Input.GetKey(KeyCode.Space)){ //아이템 습득 키 확인
GameManager.Instance.AddInventoryItem(other.GetComponent<ItemManager>().ReturnItem()); //인벤토리에 아이템 추가
GameObject go = ObjectPoolingManager.Instance.GetQueue(ObjectPoolingManager.Instance.slotQueue); //미리 만들어둔 오브젝트를 가져옴
go.transform.GetChild(0).GetComponent<Image>().sprite = other.GetComponent<SpriteRenderer>().sprite;
go.transform.SetParent(GameManager.Instance.cropsParent);
Destroy(other.gameObject); //인벤토리에 추가해줬으니, 오브젝트를 삭제
}
}
}
go.GetComponent<Image>()를 go.transform.GetChild(0).GetComponent<Image>() 로 변경해줬다.
게임 오브젝트의 하위 오브젝트를 자식 오브젝트라고 한다. 하위 오브젝트는 위에서부터 차례대로 0번, 1번, ... 이런식으로 순번이 매겨진다.
우리는 이미지를 slot에 넣었었지만, 이제는 ItemImg에 넣어줘야하기 때문에 위와 같이 수정한것이다.
이후, 아이템을 먹어보면 이렇게 된다.
잘 적용되는걸 볼 수 있다.
다음은 아이템 카운트를 수정해보자.
'Develop > 마음대로 만드는 게임' 카테고리의 다른 글
[NProject] 마음대로 만드는 게임 - 14. 슬롯 수정3 (0) | 2024.05.22 |
---|---|
[NProject] 마음대로 만드는 게임 - 13. 슬롯 수정2 (0) | 2024.05.21 |
[NProject] 마음대로 만드는 게임 - 11. 인벤토리 기능 추가 (0) | 2024.05.20 |
[NProject] 마음대로 만드는 게임 - 10. 아이템을 만들어 보자! 4 (0) | 2024.05.20 |
[NProject] 마음대로 만드는 게임 - 9. 아이템을 만들어 보자! 3 (0) | 2024.05.20 |