입력 관련 코드를 모두 플레이어에 넣어 놓으면 룰이 바뀌었을때 수정하기가 힘들다. 종속성이 너무 강해 코드를 유연하게 바꿀 수 없다는 의미이다. 그래서 입력을 받는 부분을 별도로 빼서 관리하는게 좋다. 이번에는 Controller를 만들어 입력에 관한 코드를 옮기고 수정해줄  것이다.

 

목차

     

     


     

    인프런 Rookiss님의 '언리얼 엔 2D 게임' 강의를 기반으로 정리한 필기입니다. 
    😎[입문자를 위한 UE5] Part2. 언리얼 엔진 2D 게임 개발 입문 강의 들으러 가기!
     

     

     

    Controller

    입력 관련 코드를 모두 플레이어에 넣어 놓으면 룰이 바뀌었을때 수정하기가 힘들다. 종속성이 너무 강해 코드를 유연하게 바꿀 수 없다는 의미이다. 그래서 입력을 받는 부분을 별도로 빼서 관리하는게 좋다. 이번에는 Controller를 만들어 입력에 관한 코드를 옮기고 수정해줄  것이다.

     

     

    Player Controller란?

    https://docs.unrealengine.com/4.26/en-US/InteractiveExperiences/Framework/Controller/PlayerController/

     

    PlayerController

    The PlayerController implements functionality for taking the input data from the player and translating that into actions, such as movement, using items, firing weapons, etc.

    docs.unrealengine.com


     

    Level World Settings

     

    Level World Settings

    World Settings - GameMode - GameMode Override - BP_GameMode로 설정
    World Settings - GameMode - Selected GameMode - Default Pawn Class - BP_Knight
    DevMap에 BP_Knight 삭제. PlayerStart 생성

     

     

    새로운 Blueprint  생성 - BP_GameMode, BP_PlayerController, BP_AIController

     

    BP_GameMode

    Blueprint Class - Game Mode Base

     

     

    BP_PlayerController

     

    BP_AIController

     


     

    BP_PlayerController

     

    Event Graph

    Update Input 함수 생성한다. BP_Knight에 있는 Update Input 함수를 대체하는 코드가 될 것이다.

     

    Update Input

    BP_Knight에 있는 Update Input 함수를 복사 붙여넣기 한 후 수정해준다. (BP_Knight에 있던 입력 함수를 BP_PlayerController로 옮겨주는 과정. 수정 후 BP_Knight의 입력 관련 함수는 지워줄 예정이다.)

    처음에 복사 붙여넣기 한  Update Input은 에러가 뜬다.

    • BP_Knight의 상속을 받은 MyPlayer 변수를 생성하여 에러가 나는 부분을 수정해준다.

     

     


     

    BP_AIController

     

    BP_Monster - UpdateAI 코드를 복사하여 BP_AIController에 옮겨준다. BP_Monster - UpdateAI는 삭제한다.

     

    BP_AIController

    • BP_Monster - UpdateAI 코드를 복사한다. 컴파일하면 에러가 뜬다.
    • BP_Monster의 상속을 받는 변수를 생성한다. 

    • BP_Monster의 상속을 받는 변수 MyMonster를 생성한다.
    • 에러가 나는 부분을 MyMonster와 연결된 노드로 수정한다.

     

    실행화면