5. 바위 파괴하기

이번 섹션에서는 Bind Event 를 사용하여 OnHit 에 바인딩, 바위가 총에 맞으면 파괴되도록 하겠습니다.

Windows
MacOS
Linux

이번 단계에서는, 플레이어가 발사하는 발사체에 바위가 맞으면 파괴될 수 있도록 만들겠습니다. 그러기 위해 또다른 Bind Event 를 사용하지만, 이벤트 디스패처에는 바인딩하지 않도록 하겠습니다. 대신 바위의 콜리전이 무언가에 맞으면 발동되는, 상황에 완벽히 들어맞는 OnHit 라는 콜리전 이벤트를 사용하겠습니다.

그러면 폭파시켜 봅시다!

  1. FirstPersonCharacter 블루프린트 안으로 돌아와서, 바위를 스폰시킨 Spawn Actor 노드를 찾습니다.

  2. Spawn Actor 노드의 Return Value 를 끌어놓은 다음 Assign On Actor Hit 를 선택합니다.

    OnActorHit.png

  3. Spawn ActorBind Event 를 연결합니다.

  4. Spawn ActorReturn Value 를 끌어놓고, Apply Radius Damage (Destructible) 을 선택합니다.

    ApplyDamage.png

    Apply Damage 를 사용할 수도 있지만, 추가로 입력할 파라미터가 있을 수 있습니다. 단순함을 위해 Radius Damage 를 사용하도록 하겠습니다.

  5. Apply Radius Damage 노드에서 아래 보이는 각 칸에 50000 을 입력하고 Get Actor Location 노드를 연결합니다.

    EnterDamage.png

    바위를 산산조각내기에 충분한 대미지를 입힐 수 있을 것입니다.

  6. Apply Radius Damage 노드 뒤에 Set Score 노드를 추가합니다.

  7. Control 키를 누른 채 Score 변수를 끌어놓은 다음 (1 로 설정된) Int + Int 노드에 연결하고, 다음과 같이 연결합니다.

    IncreaseScore.png

    이렇게 하면 현재 점수를 구해온 다음 바위에 맞을 때마다 1 씩 더해줍니다.

  8. Bind EventSet Score 노드를 3 초로 설정된 Delay 노드에 연결합니다.

    DelayNode.png

    바위가 (맞았든 안맞았든) 스폰된 지 3 초가 지나면, 파괴시키도록 합니다.

  9. Delay 뒤에 Destroy Actor 노드를 추가합니다.

    DestroyActor.png

    Spawn Actor 노드의 Return Value 를 끌어 Destroy Actor 노드의 Target 에 물려줍니다.

  10. Destroy Actor 뒤에 Set IsActive 변수 노드를 추가하고 체크해제 상태로 놔둡니다.

    SetIsActive.png

    여기서는 스폰된 바위가 더이상 활성 상태이지 않아 (pulls 횟수가 남아있다면) 플레이어가 또 하나 스폰시킬 수 있는 상태임을 말합니다.

핵심 게임플레이 구성이 완료되었으니, 이제 에디터에서 플레이해 보면 레벨 임의 스폰 지점에서 바위가 스폰되어 총으로 쏴서 파괴시킬 수 있는 것을 볼 수 있습니다. 다음 단계에서는 HUD 와 통신하여 캐릭터 블루프린트의 값에 따라 표시되는 값을 업데이트하도록 하겠습니다.

Tags
Select Skin
Light
Dark

Welcome to the new Unreal Engine 4 Documentation site!

We're working on lots of new features including a feedback system so you can tell us how we are doing. It's not quite ready for use in the wild yet, so head over to the Documentation Feedback forum to tell us about this page or call out any issues you are encountering in the meantime.

We'll be sure to let you know when the new system is up and running.

Post Feedback