오늘 학습 키워드

개인 프로젝트 해내기, 스탠다드 반 강의

오늘 학습 한 내용을 나만의 언어로 정리하기

필수 기능

아이템 사용

원래는 플레이어 인벤토리를 따로 만들고 싶었으나 시간상의 문제로 그냥 기존 방법 그대로 사용 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쪽에서 실행하도록 함

  • 해결 방법

  • 새롭게 알게 된 점

  • 이 문제&에러를 다시 만나게 되었다면?

내일 학습 할 것은 무엇인지