일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- C
- Unity
- 추상클래스와인터페이스
- 크래프톤 정글
- 크래프톤정글4기
- 연결리스트
- 이벤트 함수 실행 순서
- 네트워크
- anonymous page
- 유니티
- 다익스트라
- 티스토리챌린지
- KRAFTON JUNGLE
- 백준
- 오블완
- pintos
- project3
- 전쟁-전투
- 알고리즘수업-너비우선탐색2
- 4기
- kraftonjungle
- TiL
- 핀토스
- 파이썬
- 크래프톤정글
- BFS
- c#
- 크래프톤 정글 4기
- User Stack
- 알고리즘
- Today
- Total
목록TIL (47)
말감로그
드디어 몇일동안 감을 못잡고 헤매기만 했던 인벤토리 저장&로드 시스템을 구현했다.. 우선 저장과 로드를 생각했을 때 제일 먼저 든 생각이 PlayerPrefs를 사용하여 시스템을 구현하자였다.그래서 PlayerPrefs로 인벤토리를 저장하려고하니, 인벤토리와 툴바의 슬롯에는 각 슬롯의 정보(이름, 아이콘, 갯수, PlantData 등) 많은 정보가 담겨있고 각 인벤토리의 슬롯 리스트를 담는 것에는 무리가 있다고 생각했다.그리고 PlayerPrefs으로 구현이 가능하다고 한다 해도 다른 방식을 사용하고 싶다는 생각도 있었다. 두번째로 Json을 활용해서 데이터를 직렬화해서 저장한 후 역직렬화를 통해 데이터를 로드하고자하였다. 그래서 현재 인벤토리를 받아 인벤토리의 데이터를 JsonUtility.ToJson..
호기, 물뿌리개, 도끼 등 필수적인 아이템을 팔지 못하게하고, 과일, 나무, 식물, 씨앗 등을 팔 수 있도록 분리하기 위해 Item Data에 isSellable을 추가하여 각 아이템에 맞게 설정해주었다. 그리고 판매 창을 열었을 경우, 툴바에서도 해당 아이템은 팔지 못한다는 것을 표시하기 위해 아이콘의 색상을 좀 더 어둡게 표시하고, 판매 창에서도 해당 아이템의 정보가 뜨지 않도록 했다. 그러기 위해서 Slot_UI.cs의 슬롯의 아이템을 세팅해주는 함수(SetItem)에서 현재 itemBox가 열려있고, 판매 불가능한 상품일 경우의 조건문을 걸어 color 변화를 주었다.// Slot_UI.cspublic void SetItem(Inventory.Slot slot){ if (slot != nu..
기존의 Player 스크립트에서 Player에 Raycast를 달아 ItemBox를 인식했던 것을 ItemBox 에서 OnTriggerEnter와 OnTriggerExit로 인식하는 것으로 변경하였다.// ItemBox.csvoid OnTriggerEnter2D(Collider2D other){ if (other.gameObject.name == "Player" && Input.GetMouseButtonDown(0) && !isBoxOpen) { Debug.Log("아이템 박스 오픈"); isBoxOpen = true; anim.SetBool("isOpen", isBoxOpen); sellingPanel.SetActive(true); ..
과일 나무 드랍과일 나무를 도끼로 한 번 치면 과일이 떨어지도록 했다.과일이 스폰될 위치(FruitSpawn) 와 떨어질 위치(FallPos)를 만들었다. 각 0.5f의 거리를 유지하도록 총 3개의 fruit 프리팹을 생성하고, 코루틴을 사용하고 Lerp를 통해 떨어질 위치까지 부드럽게 이동시키게 했다. void DropFruit() { isFruitDrop = true; for (int i = 0; i (); if (interactable != null) interactable.canInteract = false; while (elapsedTime 과일 생성 이후 나무를 치면 나무도 쓰러지면서 나무조각 생성 레이캐스트..