Unity 입문 강의 3일차
모르는 점
Chapter .1 Unity 강의
Content .1 오브젝트 풀링
- 게임 성능을 개선하기 위해 사용
- 객체를 미리 생성해 두고 필요할 때 가져다 사용하고 끝나면 다시 풀에 반납하는 방식
- Instantiate(생성)과 Destroy(소멸)이라는 비용이 큰 작업을 최소화함으로써 성능을 향상
- 빈번하게 생성 후 파괴되는 객체에게 중요함
- 풀에 저장 후 재사용하여 메모리 할당과 가비지 컬렉션에 따른 성능 저하를 방비
- 오브젝트 풀의 크기를 적절히 조절하는 것이 중요
Content .2 오브젝트 풀 만들기
- 오브젝트 이름
- 생성할 프리팹
- 생성할 갯수
- Queue로 저장 (선입선출)
Contnet .3 Animation & Animator
- Animation
- Animation 컴포넌트는 게임 오브젝트에 애니메이션을 추가하는데 사용
- 애니메이션 클립을 재생할 수 있음
- 간단한 애니메이션에 적합
- Animator
- Animator 컴포넌트는 에니메이션 상태를 제어하고 전환을 관리하는데 사용
- Animation Controller를 사용하여 애니메이션의 족잡한 상태 기계를 구현
- 캐릭터의 걷기, 뛰기, 점프 등
Content .4 StringToHash
- 문자열을 해시 값으로 변환하며, 성능을 개선하고 코드의 가독성을 유지
- 문자열 비교는 상대적으로 연산 비용이 큰 작업
- "StringToHash"는 문자열을 고유한 정수 값인 해시 값으로 변환하여 이 연산 비용을 크게 줄임
- 해시 값은 고유하기 때문에 다른 문자열이 동일한 해시 값을 갖는 확률이 매우 낮음 (Collision)
- 효율적으로 비교 가능
- 일방향으로 작동
Content .5 싱글턴 패턴
- 소프트웨어 디자인 패턴 중 하나
- 특정 클래스의 인스턴스가 하나만 존재하도록 보장
- 이를 전역적으로 접근할 수 있는 전역 접근을 제공하는 패턴
- 인스턴스가 하나만 존재하도록 보장하는 디자인 패턴
- 객체간 데이터 공유, 전역적인 상태 관리
Content .6 FindGameObjectWithTag
- 매우 비싼 연산 (최소한으로 설정 필요)
- Start나 Awake 같은 초기화 메서드에서 한번만 호출 필요
Content .7 Physics.Raycast or Physics2D.Raycast
- Raycast는 hit 정보를 반환
- 충돌한 객체, 충돌 지점, 충돌 지점의 정규화된 벡터 등 포함
- 불필요한 Raycast를 줄이고, 가능한 경우 레이어마스크를 사용하여 검사 범위를 제한하는 것이 성능에 좋음
Chapter .2 모르는 점
- Enqueue
- Dequeue
- magnituteThreshold
- 진폭 문턱값
- ex> animator.SetBool(isWalking, vector.magnitude > magnituteThreshold);
- 위치.진폭이 문턱진폭보다 클 때 걸을 수 있다
점차 모르는 내용이 많아지고 어려워짐
벽이 느껴져서 포기하고 싶은 마음도 들지만 재미도 있어서 주말 반납하고 노력해볼 예정