[Unity]TIL (50) | 2023.10.05 | 유니티 유한 상태 머신(FSM)

kjg5370·2023년 10월 5일
0

TIL

목록 보기
50/91
post-thumbnail

들어가기 앞서

오늘은 드디어 마지막 개인과제가 있는 유니티 심화 주차의 첫번째 날입니다.
실전 프로젝트를 하기 전 마지막 주차다 보니 확실히 배우는 내용이 어려워 진 것 같습니다.
내용이 이해가 잘 되지 않아도 천천히 나아가 보겠습니다.

오늘 배운 것

  • 유니티(Unity)에서 유한 상태 머신 (FSM)
    게임 또는 애플리케이션의 상태 및 동작을 관리하고 제어하기 위한 일반적인 디자인 패턴 중 하나.

    • 유한 상태 머신(FSM)

      객체 또는 시스템의 상태를 정의하고, 이러한 상태 간의 전이(Transition)를 규정하여 해당 상태에서 어떤 동작 또는 행동을 수행해야 하는지를 관리 하는 데 사용.

    • 구성요소

      1. 상태(State): 시스템이나 객체의 가능한 상태
      2. 이벤트(Event): 상태 간의 전이를 유발하는 외부 또는 내부 이벤트를 나타냄
      3. 전이(Transition): 특정 상태에서 다른 상태로 이동하기 위한 조건 또는 규칙을 정의
      4. 동작(Action): 각 상태에 연결된 동작 또는 코드 블록
    • 유니티에서 FSM 구현

      1. 상태 정의: 먼저 게임 또는 오브젝트의 가능한 상태를 정의
        ex) 캐릭터의 상태로 "이동", "공격", "대기" 등을 정의
      2. 상태 전이: 각 상태 간의 전이 조건을 정의
        ex) 캐릭터가 공격 중일 때 적이 없으면 "대기" 상태로 전환하도록 설정
      3. 상태 동작: 각 상태에 대한 동작 또는 로직을 구현
      4. FSM 관리: FSM을 관리하는 스크립트를 작성하고, 게임 오브젝트에 연결
    • 장점

      • FSM은 상태와 전이를 시각적으로 나타내기 쉽고 인해 시스템의 동작을 이해하고 코드를 간단하게 구성할 수 있으므로 가독성이 향상
      • 각 상태와 상태 전이가 명확하게 정의되어 있기 때문에, 시스템에서 문제가 발생할 때 해당 문제를 파악하고 수정하기가 비교적 쉬움
      • FSM은 상태 기반 로직을 쉽게 구현할 수 있으므로, 게임 캐릭터의 상태, AI, UI 상태 등 다양한 상황에서 유용
      • 새로운 상태를 추가하거나 상태 전이를 변경하여 시스템을 쉽게 확장
    • 단점

      • 복잡한 시스템에서 FSM을 사용하면 상태와 전이의 수가 급격히 증가하여 상태 다이어그램이 복잡해지고 유지보수가 어려워짐
      • FSM은 특정 유형의 문제에 적합하지만 복잡한 논리나 동적인 행동을 잘 다루지 못할 수 있음
      • FSM은 일반적으로 동기적인 상황에서 잘 작동하며, 비동기적인 상황에 대한 처리가 어려울 수 있음

기억 할 것 & 진행 사항

  • URP 란?
    Unity의 Universal Render Pipeline의 약자로, 스크립트 가능한 렌더 파이프라인(Scriptable Render Pipeline)

  • 목적
    성능 최적화: URP는 모바일 기기 및 저사양 PC와 같은 리소스 제한된 환경에서도 높은 성능을 제공하도록 최적화.
    모바일 게임 및 VR/AR 프로젝트와 같은 애플리케이션을 개발하기에 적합.

    포괄적인 플랫폼 지원: URP는 다양한 플랫폼에 대한 렌더링을 지원.

    확장성: URP는 개발자가 필요에 따라 렌더링 파이프라인을 확장하고 커스터마이징할 수 있는 확장성을 제공

    시각적 품질: URP는 높은 품질의 그래픽을 제공. 이는 향상된 라이트 모델, 표면 쉐이딩, 포스트 프로세싱 효과 등을 사용하여 획득

진행 사항

현재 강의를 들으며 처음 배우는 개념에 대해 정리하면서 이해해보려고 합니다. 구조가 머리속에 잘 들어오지는 않지만 조금씩 따라해보며 이해해보려고 합니다. 일단 상태 머신을 이용하여 플레이어의 움직임을 보여줄 상태 머신을 준비하고 있는 과정입니다. 내일은 움직임에 대해 구현해 보려고 합니다.

😊

내일 할 일

  • 하루 계획
    • 오전
      • 09:00 ~ 10:00 : 알고리즘 코드카타
      • 10:00 ~ 10:30 : 팀 회의
      • 10:30 ~ 14:00 :
        • 오늘 계획 (Task)
          • 강의 다 듣기
          • 시네머신 정리
      • 12시-1시: 점심식사
    • 집중 코딩
      • 14:00 ~ 18:00
    • 저녁
      • 6시-7시: 저녁식사
      • 19:00 ~ 20:00 : 집중 코딩 시간 부족한 부분 해결해보기
      • 20:00 ~ 21:00: TIL 작성, 마무리 회고 진행
      • 21:00 : 내일은 위한 휴식!
profile
학생입니다

0개의 댓글