ThirdPerson 예제를 C++ 로 만든후, MyDrone 클래스를 생성후 다음과 같이 작성한다.

 

MyDrone 클래스를 상속받아 BluePrint를 생성한다.

다음과 같이 생성된다.

각각 Mesh를 쒸운다.

 

MyDone 클래스에 FloatingPawnMovement Component 을 추가한다.

 

 

빌드후 블루프린트로 확인한다.

 

다음과 같이 수정한다.

Character 클래스에 MyDrone 래퍼런스를 추가한다.

그후 다음과 같이 설정한다. EditAnywhere 로 설정하였기 때문에 디테일탭에서 볼 수 있다.

Input 설정에서 다음과 같이 추가한다.

 

MyDrone 클래스에 EDroneState 를 추가한다.

 

드론을 활성화 시키기 위하여  Activate funtion을 만든다.

 

 

 

Character 클래스에 드론을 활성화 시키기 위한 토글버튼을 바인드 한다.

 

이제 게임을 시작해보면, 카메라의 시점의 드론으로 이동하는것을 볼 수 있다.

 

이젠, 드론의 움직임을 구현해보자.

 

빌드후 실행한후 F키를 클릭하면 드론이 움직이는것을 확인 할 수 있다.

 

 

드론을 비활성화 하는 코드를 작성한다.

 

게임을 시작후 드론 시점에서 F를 클릭하면 캐릭터로 돌아오는것을 볼 수 있다.

 

 

드론에 SpringArm 과 카메라를 추가하여 좀더 보기좋게 만들자.

 

이젠 블루프린트에 SpringArm과 Camera가 추가된것을 볼 수 있다.

다음과 같이 적당한 위치로 수정하자.

 

 

다음은 프로펠러를 돌려보자.

 

먼저 프로펠러 매시의 pivot을 중앙으로 변경후 작업해야 한다.

작업이 끝났으면,

 

다음과 같이 작성한다.

 

빌드후 프로펠러가 돌아가는것을 확인 할 수 있다.

 

 

Boolean 변수를 하나 추가시켜 카메라 스위치 on off를 만든다.

빌드후 실행해보면 카메라이동 없이 드론을 움직일 수 있다.

 

하지만, 캐릭터로 소유권이 넘어올때 카메라가 뷰가 다시 설정되어 부자연 스럽다.

이부분을 수정해 보자.

 

Character 클래스의 PossessedBy, UnPossessed 그리고 Tick 함수를 오버라이드 한다.

 

빌드후 실행을 해보면 토글을 했을때 카메라 시점에 변화가 없는것을 볼 수 있다.

 

+ Recent posts