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 함수를 오버라이드 한다.
빌드후 실행을 해보면 토글을 했을때 카메라 시점에 변화가 없는것을 볼 수 있다.
'언리얼 엔진' 카테고리의 다른 글
Delegate이용하여 light 제어하기 (C++) (0) | 2021.11.16 |
---|---|
Collision 체크하여 문열기(c++) (0) | 2021.11.08 |
Pawn 생성하여 움직임 구현하기 (0) | 2021.10.12 |
물효과 마테리얼 만들기 (0) | 2021.09.29 |
카메라 필터 넣기. (0) | 2021.09.28 |