250326 TIL

박소희·2025년 3월 26일

Unity_7기

목록 보기
55/94

FSM

  • 유한상태 기계
  • 유한한 갯수의 상태들로 구성된 기계 및 패턴
  • 상태와 상태 간의 전환을 기반으로 동작

구성 요소

  • 상태: 시스템이 취할 수 있는 다양한 상태
  • 전환 조건: 상태 간 전환을 결정하는 조건
  • 동작: 상태에 따라 수행되는 동작 또는 로직

동작 원리

  • 초기 상태에서 시작하여 입력 또는 조건에 따라 상태 전환
  • 상태 전환은 조환 조건 충족 시 발생, 전환 조건은 입력/시간/조건 등으로 결정
  • 상태 전환 시 이전 상태의 종료 도작과 새로운 상태의 진입 동작 수행

구현

  • Switch-Case문 -> 상태가 많아지고 조건이 복잡해지면 코드가 너무 길어진다.
  • State Pattern -> 객체지향, 상태 간 전환을 일관되게 관리할 수 있다.

Character Controller

  • 이동: 이동방향과 이동 속력을 설정할 수 있다.
  • 중력: 중력과 점프 기능은 직접 개발이 필요
  • 충돌 처리: 물리 엔진 사용 x
  • 바닥 검출: 캐릭터가 바닥 위에 놓이도록 바닥 검출, 레이
  • 움직임 제한: 지정된 영역 내에서 움직이게
  • Slope Limit: 경사 제한
  • Step Offset: 오를 수 있는 높이 제한
  • Skin Width: 껍데기..

Cinemachine

BrainCamera가 여러 개의 virtual Camera를 관리

  • 가상 카메라: 실제 카메라가 없는 상태에서도 여러 가상 카메라의 시점과 속성 조작
  • 카메라 블렌딩: 여러 가상 카메라 간 전환 자연스럽게 블렌딩 기능 제공
  • 트랙링과 추적: 오브젝트를 추적하여 자동으로 카메라를 따라가도록
  • 애니메이션 연동: 애니메이션 시스템과 연동하여 카메라의 속성을 애니메이션과 동기화
  • 렌즈 세트: 렌즈 조작

Vector3.SmoothDamp: 서서히 감속
AnimatorStateInfo currentInfo = animator.GetCurrentAnimatorStateInfo(0); // 해당 레이어에서 진행되고 있는 애니메이션 불러오기

sqrMagnitude: 두 위치 사이의 거리 제곱만 한 값. 자주 연산해야하는 상황에서 magnitude보다 좋다.

0개의 댓글