TNT 폭발 + TNT 재생성기

이 튜토리얼에서는 타격 시 폭발하고 사용 후에 재생성되는 이동 가능한 폭발물 TNT 생성에 대해 알아보겠습니다.

우선 TNT를 만들어 봅시다.

  • 키보드의 L 키를 눌러 라이브러리를 오픈하고 TNT 애셋을 드래그합니다. 만약 라이브러리에 보이지 않는다면 마켓플레이스 버튼을 클릭해 추가합니다.

  • 무엇인지 알 수 있도록 TNT에 고유한 이름을 붙입니다. 이 예시에서는 'TNT - Box Destroyer'를 사용했습니다.

  • 'Physics''Collisions + Gravity'로 설정해 TNT를 발로 차서 바닥에 떨어트릴 수 있도록 합니다.

  • 이 애셋에는 비헤이비어를 추가하지 않아도 됩니다.

  • 'Health' 컴포넌트를 추가합니다.

  • 낮은 수치를 지정하여 빠르게 파괴될 수 있도록 합니다.

  • 'Death Delay''2'로 설정합니다. TNT가 타격된 후에 터지기까지 걸리는 시간을 의미합니다.

  • 'Instant death message''xxxx'로 설정합니다. 또는 기본 메시지가 아닌 다른 어떤 것이든 괜찮습니다.

  • 'Life Bar Display''Always'로 설정합니다. TNT를 항상 눈에 띄도록 합니다.

  • 'Drop' 컴포넌트를 추가합니다.

  • 'Drop condition''Death'로 설정합니다. 사망 시 무엇인가 드롭됩니다.

  • 'Drop Amount''1'로 설정합니다.

  • 'Type of drop''Preset'으로 설정합니다. 'Preset' 필드 아래 다음으로 생성할 'void' 프리셋을 선택할 수 있습니다. 이 부분은 이후 다시 알아보겠습니다.

  • 'Indicator' 컴포넌트를 추가합니다.

  • 'Display Name'을 설정합니다. 여기에서 설정하는 이름으로 게임에서 나타나게 됩니다. 여기서는 'TNT'를 사용했습니다.

  • 'Visibility Distance'를 짧게 설정합니다. 여기서는 '9' 블록만큼의 거리로 설정했습니다.

  • 'Pickable' 컴포넌트를 추가합니다. 이제 플레이어는 E 키를 눌러 TNT를 집을 수 있습니다.

타격 시 또는 'xxxx'라는 메시지가 수신될 시 파괴되어 프리셋을 드롭하는 TNT를 생성했습니다. 플레이어가 줍거나 밀면 플레이어에게 주의를 주는 메시지가 표시되는 Indicator 또한 포함되어 있습니다. 이제 이 TNT가 파괴하는 Void를 생성해 보겠습니다.

  • Void를 위해 아주 작은 애셋을 사용합니다. 이 예시에서는 'NumPad Switch'를 사용했습니다.

  • NumPad Switch’를 투명하게 하고 'No collisions'로 설정합니다.

  • 이후 다른 애셋과 상하위 관계를 설정해야 하므로 검색할 수 있도록 이름을 설정합니다. 여기서는 'TNT - Void'를 사용했습니다.

  • 'Void' 행동을 부여하고 'Visible'을 False로 설정합니다.

  • 'Destroy Area'를 원하는 크기만큼 크게 설정합니다. 폭발의 크기가 클수록 지연되는 시간도 길어집니다.

  • 'Activation Mode''OnStart'로 설정합니다.

  • 'Blocks Destruction''DontDestroy'로 설정합니다.

  • 'Asset Desctruction''OnlyDestroyFromList'로 설정하고 TNT가 폭파할 애셋을 추가합니다. 이 예시에서는 'Storage Container'를 파괴하게 만들겠습니다.

  • 'Health' 컴포넌트를 추가합니다.

  • 'Death Event''Destroy'로 설정합니다.

  • 'Death Delay''-1'로 설정합니다.

  • 'Instant death message''tntkillx'로 설정합니다.

  • 'Life Bar Display'를 'Hidden'으로 설정합니다.

생성되면 붉은색 파괴 영역에 있는 Storage Containers를 즉시 파괴하는 void를 만들었습니다. 또한 Void가 폭발하면 계속해서 공백이 발생하여 게임이 지연되지 않도록 Health 컴포넌트를 부여했습니다. 이제 이 지연 문제를 다뤄 보겠습니다. 'Storage Container'를 파괴하도록 Void가 설정되었으므로, 파괴된 이후에 다른 Void를 또다시 파괴하는 데 이용됩니다. 이제부터 함께 해 보죠.

  • 'Storage Container'를 놓습니다.

  • 투명하게 하고 'No collisions'로 설정합니다.

  • 이후 다른 애셋과 상하위 관계를 설정해야 하므로 검색할 수 있도록 이름을 설정합니다. 여기서는 'TNT - VoidKill'을 사용했습니다.

  • 'Health' 컴포넌트를 추가합니다.

  • 'Death Event''Destroy'로 설정합니다.

  • 'Death Delay''1'로 설정합니다.

  • 'Life Bar Display'를 'Hidden'으로 설정합니다.

  • 'Message sent on death'를 'tntkillx'로 설정합니다.

  • 'Send To Tags''Void'로 설정합니다.

  • 화면 왼쪽 아래 코너의 'Hierarchy' 버튼을 클릭합니다.

  • 검색창에 'TNT'를 검색하여 이름에 TNT가 포함된 모든 애셋을 검색합니다.

  • 리스트에서 'TNT - Void' 애셋을 찾아 타겟 아이콘을 클릭하여 'TNT - VoidKill'로 드래그하여 해당 애셋의 자식 오브젝트가 되도록 합니다. 아래 이미지를 참조하세요.

두 개의 아이템을 하나로 만들었습니다. 이제 'Storage Container'를 이동하면 'NumPad Switch' (Void) 또한 따라오게 됩니다. 그럼 'TNT - VoidKill'이라는 'Storage Container'를 프리셋으로 만들어 보겠습니다.

  • 'TNT - VoidKill'이라는 'Storage Container'를 선택합니다.

  • 페이지 왼편의 'Preset' 버튼을 클릭합니다.

  • 'Create New Preset'을 클릭하고 'Next' 버튼을 클릭합니다.

이제 Void가 프리셋으로 만들어졌으니 'TNT'로 돌아가서 방금 만든 'TNT - VoidKill' 프리셋에 'Drop' 컴포넌트를 설정해야 합니다.

모두 완료되었습니다! 이제 TNT는 폭발할 수 있으며 Storage Containers와 스스로를 파괴하여 게임이 지연되지 않도록 합니다. 그렇다면 재생성은 어떻게 해야 할까요? 아주 쉽게 설정할 수 있습니다!

  • 방금 만든 TNT를 선택하고 'TNT - Box Destroyer'라는 이름을 붙여 프리셋을 생성합니다. 조금 전 진행했던 작업처럼요.

  • 'NumPad Switch'를 추가하고 'Asset Spawner' 비헤이비어를 부여합니다.

  • 투명하게 하고 'No collisions'로 설정합니다.

  • 'Use Preset''True'로 설정하고 TNT 프리셋, 'TNT - Box Destroyer'을 선택합니다.

  • 'Message Required' 'tntkillx'로 설정합니다.

  • 'Tag' 'Void'를 추가합니다.

이제 TNT가 폭발하면 투명한 Void와 VoidKill이 생성됩니다. VoidKill이 사망 시 Void를 죽이라는 메시지를 전송하며 Asset Spawner에 새로운 TNT를 생성하라는 메시지 또한 전송합니다. 정말 멋지죠!

Last updated