오늘 학습 키워드
개인 프로젝트 해내기, 스탠다드 반 강의
오늘 학습 한 내용을 나만의 언어로 정리하기
필수 기능
아이템 사용
원래는 플레이어 인벤토리를 따로 만들고 싶었으나 시간상의 문제로 그냥 기존 방법 그대로 사용 MVC가 지켜지지 않은 것 같아서 약간 불만족
도전 기능
3인칭 시점
얼추 완성. 그냥 TPS용 CameraContainer를 따로 만들었음
움직이는 플랫폼
되긴 했는데 플레이어가 같이 움직이는게 아니라서 힘듬
벽타기 및 매달리기
장비 장착
레이저 트랩
상호작용 가능한 오브젝트 표시
플랫폼 발사기
발전된 AI
스탠다드 반 강의 (주제 : 자료구조)
자료구조란
- 데이터를 특징에 따라 효율적으로 읽고 쓰고 사용하기 위해 조직하는 방법
배열
- 서랍같음
- 같은 타입의 데이터를 연속적으로 저장하는 고정크기 자료구조
- 선언할 때 무조건 크기를 지정해 주어야 함
- 메모리 관리에 효율적
- 배열의 크기를 늘리는 건 일반적으로는 불가능함.
- 메모리 상에서 연속된 주소들로 이루어져 있음.
리스트
- 크기가 동적으로 변하는 배열
- 적층형 서랍임
- 만약에 크기보다 더 많이 들어오면 기존 크기의 두 배만큼 배열이 늘어남
- 2, 4, 8, 16, 32, …
- 내부적으로는 배열임!!!!
- list.clear()를 해도 capacity가 줄지는 않으니 메모리 효율 떨어짐
- 따라서 list.TrimExcess()로 메모리를 정리해라
- 편의기능이 추가된 배열
- 추가 삭제가 빈번할 때에는 썩 좋지 못함
연결리스트
- 데이터와 이전 노드, 다음 노드에 대한 참조를 가지는 노드들이 연결되어있는 동적 자료구조
- 인덱스로 접근이 안되기 때문에 검색 속도가 느림
- 동적 크기 조절이 가능해서 메모리 유연성이 높음
- 데이터 추가 삭제가 자주 일어날 때 쓰는게 좋음
- 연결된 맵 같은거 만들 때 쓸 수 있음
딕셔너리
- 키-값 쌍을 저장함
- 키를 통해 편리하고 설정상 명시적으로 데이터에 접근 가능
- 키가 복잡하거나 비연속성 데이터를 저장하기에 유용함
- 아이템 정보 저장할 때 유용
큐
- 선입선출. FIFO 구조
- 먼저 들어온 데이터가 먼저 나간다.
- Enqueue : 넣기
- Dequeue : 빼기
- Peek : 입구 앞에 있는게 뭔지 보기
- 작업 대기열 관리에 적합함
스택
- 후입선출, LIFO 구조
- 먼저 들어온 데이터가 나중에 나간다.
- Push : 넣기
- Pop : 빼기
- Peek : 입구 앞에 있는게 뭔지 보기
- Undo 기능 만들 때 유용
- UI 팝업창 만들때도 유용함
학습하며 겪었던 문제점 & 에러
문제 1
- 문제&에러에 대한 정의
버튼 설정이 똑바로 되어있는데도 불구하고 클릭이 안됐음
- 내가 한 시도
버튼의 OnClick 이벤트를 동적으로 달게 해봤음
- 해결 방법
이유가 따로 있었음. Input Action에서 Auto Generate C# Class를 하고 그걸 이용하는 방식으로 했는데 Event System에서 변경된 Input에 대해 제대로 적용해 주지 않았음.
- 새롭게 알게 된 점
Event System에서 Input Action 쓰게 하면 새로 설정해 주어야 한다
- 이 문제&에러를 다시 만나게 되었다면?
클릭이 안되면 Event System을 확인해 보자
문제 2
- 문제&에러에 대한 정의
아이템 사용 만들려고 했는데 아이템이 Inactive일 때는 사용이 안된다고 함
- 내가 한 시도
코루틴의 실행을 이전해서 InventoryUI쪽에서 실행하도록 함
-
해결 방법
-
새롭게 알게 된 점
-
이 문제&에러를 다시 만나게 되었다면?