TNT 폭발 + TNT 재생성기
Last updated
Last updated
이 튜토리얼에서는 타격 시 폭발하고 사용 후에 재생성되는 이동 가능한 폭발물 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를 생성하라는 메시지 또한 전송합니다. 정말 멋지죠!