월드 세팅에서 GameMode Override를 생성한 게임 모드로 바꾸어준다.
디폴트 폰은 BP_Knight로, 플레이어 컨트롤러도 뒤에 만들 BP_PlayerController로.
플레이어 컨트롤러
Player Controller 클래스를 생성하고 BP_PlayerController로 이름지어준다.
플레이어 컨트롤러가 조종하는 Pawn 객체를 변수로 관리
BP_Knight에 있던 UpdateInput 함수를 BP_PlayerController에 옮긴다.
UpdateInput의 내용을 다 가져오지만 Pawn객체로부터 멤버를 Get으로 가져오는 부분을 고쳐주어야함.
이렇게 하면 움직임의 구현부는 따로 뺴놓았지만 이전과 동일한 실행이 가능함.
AI 컨트롤러
AIController를 생성해주고 BP_AIController로 이름지어준다.
BP_Monster의 AI Controller Class를 위에 생성해준 컨트롤러로 세팅.
AIController도 PlayerController와 동일하게 조종하는 Pawn객체를 변수로 가지고 있고, 움직임 구현부도 Pawn 객체 변수로부터 멤버를 들고와서 내용을 완성한다.
내가 아직 언리얼에서 제공하는 기능들을 다 몰라서 그런가 컨트롤러라는 부모 클래스를 사용하는 이유를 모르겠다.
보면 게임 모드와 밀접한 관련이 있긴 하지만 이런 편의성이 아직은 불편하다..ㅎㅎ
다른 아무개 클래스에 움직임을 구현해놓고 그 클래스의 것을 직접 호출하는 형식을 편하게 이용할 수 있게 해준 것 같은데..조금 더 익숙해지고 나중에 코드도 파봐야 될 것 같다.