Comment on page
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 modified 9mo ago