본문 바로가기
스파르타 내배캠

스파르타 내배캠 Unity 3기 39일차

by LemongO 2024. 2. 19.

주말은 왠지 아무것도 하기 싫구나~

 

 

 

 

이제 드디어 배움의 끝인 마지막 심화주차에 들어왔다!

이번 주차 강의의 전반, 중반부는 애니메이션에 특화된 느낌인데

늘상 느끼듯 일단 판을 깔아놓고 살을 붙이는 느낌이라 이 코드가 왜 여깄지? 라는 느낌을 많이 받는다...

그 말은 이해를 못했다는 뜻이니 리마인드를 해보자.

 


StateMachine & IState

 

오늘은 짧게 현재 공부한 강의 내용까지에서 사용한 대표적인 것 들을 역할별로 분리 시켜보는것만 해보자.

자세한 내용들은 마저 강의를 들으며 조각이 다 맞춰지고 쓰도록 하자.

 

  • InputSystem (InputAction) - 사용자의 키 입력을 바인딩 시킨 Action. 그런데 Generate C# Class를 사용한..
  • PlayerInput (C# Class) : Monobehavior - Player 오브젝트에 부착되는 클래스.
    이번 강의에선 C# 코드로 제어하기위해 위의 InputAction을 C# Class를 생성해줬고,
    사전에 설정한 내용(Class 생성된 InputAction)을 가지고있는 클래스.
  • Player (C# Class) : MonoBehavior - 플레이어 오브젝트에 부착되며,
    PlayerStateMachine과 실제 로직 실행을 담당하는 Awake, Update 등의 유니티 메시지가 있다.
  • PlayerSO (ScriptableObject) - 플레이어가 가질 스탯 정보들을 SO 화 시켰다.
    다만 Ground 상태와 Air 상태를 구분하여 가지고있다.
  • PlayerAnimationData (C# Class) - Player 클래스에 담겨있는 정보중 하나로,
    사용할 Animation의 키 정보들을 가지고있다.
  • StateMachine (C# Class) - 이번 강의의 메인 중 하나이자 현재 상태 정보를 가지고 있으며
    상태변경, 입력, Update, PhysicsUpdate(FixedUpdate용) 등 함수를 가지고 있다. (실행은 Player에서 해준다.)
  • PlayerStateMachine - StateMachine을 상속받고 있으며 이동 등의 State 일 때 필요한 프로퍼티 등을 가지고있다. 
    또한 생성자를 이용해 Player를 역 참조 하여 이동속도 등을 파라미터들을 초기 설정하며 
    모든 상태들을 생성하여 가지고있다.
  • IState (interface) - 각 상태일 때 호출되어야할 함수들을 가지고있다. 이 인터페이스를 상속받는걸 활용해 각 상태를 구현할 수 있게된다.
  • PlayerBaseState (C# Class) : IState - 메인으로 배울 클래스이다. 자세한건 다음 TIL에서...