{TIL} Unity 입문 교육 3일차 정리

Kwaksang·2024년 5월 10일

TIL

목록 보기
16/37
post-thumbnail

Unity 입문 강의 3일차

모르는 점

Chapter .1 Unity 강의

Content .1 오브젝트 풀링

  • 게임 성능을 개선하기 위해 사용
  • 객체를 미리 생성해 두고 필요할 때 가져다 사용하고 끝나면 다시 풀에 반납하는 방식
  • Instantiate(생성)과 Destroy(소멸)이라는 비용이 큰 작업을 최소화함으로써 성능을 향상
  • 빈번하게 생성 후 파괴되는 객체에게 중요함
  • 풀에 저장 후 재사용하여 메모리 할당과 가비지 컬렉션에 따른 성능 저하를 방비
  • 오브젝트 풀의 크기를 적절히 조절하는 것이 중요

Content .2 오브젝트 풀 만들기

  1. 오브젝트 이름
  2. 생성할 프리팹
  3. 생성할 갯수
  4. Queue로 저장 (선입선출)

Contnet .3 Animation & Animator

  1. Animation
  • Animation 컴포넌트는 게임 오브젝트에 애니메이션을 추가하는데 사용
  • 애니메이션 클립을 재생할 수 있음
  • 간단한 애니메이션에 적합
  1. 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 모르는 점

  1. Enqueue
  • 데이터를 입력하는 함수
  1. Dequeue
  • 데이터를 출력하는 함수
  1. magnituteThreshold
  • 진폭 문턱값
  • ex> animator.SetBool(isWalking, vector.magnitude > magnituteThreshold);
  • 위치.진폭이 문턱진폭보다 클 때 걸을 수 있다

점차 모르는 내용이 많아지고 어려워짐
벽이 느껴져서 포기하고 싶은 마음도 들지만 재미도 있어서 주말 반납하고 노력해볼 예정

profile
게임은 재미와 기능!

0개의 댓글