열쇠와 문 시스템 (고급)
플랫폼으로 알을 가져가 문을 여는 열쇠를 생성합니다.
Last updated
플랫폼으로 알을 가져가 문을 여는 열쇠를 생성합니다.
Last updated
먼저 문을 설정하고 커스텀 메시지를 부여합니다.
'L' 키를 눌러 애셋 리스트 중 문을 선택하고 'Door' 비헤이비어를 부여합니다.
'Message Required'의 기본 메시지를 삭제합니다 (있을 경우).
'Message Required'에 'OpenDoor'와 'CloseDoor'를 추가합니다.
하나의 메시지로도 작업을 수행할 수 있지만 쉬운 설명을 위해 별도의 메시지를 사용했습니다.
다음으로 열쇠를 만들어야 합니다. 수집되면 문을 엽니다.
열쇠 애셋을 놓고 'Pickable' 컴포넌트를 추가합니다.
'Collect action required'를 'Collision'으로 설정합니다.
'Collect Message'를 'OpenDoor'로 설정합니다.
이제 열쇠를 모으면 문이 열립니다. 이 예시에서는 플랫폼으로 알을 가져가면 문을 열 수 있는 열쇠가 주어지게 만들고자 합니다. 그럼 이제 그 부분을 만들어 보죠.
열쇠를 'Preset'으로 만들어야 합니다.
금열쇠를 선택하고 왼쪽 바의 'Preset' 버튼을 클릭합니다.
'Create New Preset'을 클릭합니다.
'Finish' 버튼을 클릭합니다.
이제 금열쇠가 프리셋이 되었으므로 'Asset Spawner' 행동이나 'Drop' 컴포넌트에서 메시지와 함께 호출될 수 있습니다. 이제 세팅을 시작해 봅시다!
'L' 키를 눌러 애셋 라이브러리에서 알을 선택합니다.
'Pickable' 컴포넌트를 적용합니다.
'Tags'에 'Egg'를 추가합니다.
'L' 키를 눌러 애셋 라이브러리에서 플랫폼을 선택합니다.
'Asset Spawner' 비헤이비어를 부여합니다.
'Use Preset'을 'True'로 설정하고 'Gold Key' 'Preset'을 선택합니다.
'Message Required'를 'DetectEgg'로 설정합니다.
동일한 오브젝트를 이용하여 동시에 메시지를 주고받을 수 없기 때문에 이 절차를 분리해야 합니다. 플랫폼이 'DetectEgg'라는 메시지를 받으면 'Gold Key'가 생성되게 설정했습니다. 이제 애셋이 'Egg' 태그를 감지하여 플랫폼에 메시지를 전송하도록 합니다.
'L' 키를 눌러 애셋 라이브러리에서 작은 애셋 하나를 선택합니다. 이 예시에서는 'NumPad Switch'를 사용했습니다.
추가된 비헤이비어가 있다면 삭제하고 'Speaker' 컴포넌트를 추가합니다.
'Display condition'을 'DetectEntity'로 설정합니다.
'Target Tags'를 'Egg'로 설정합니다.
'Message When Spoken'을 'DetectEgg'로 설정합니다.
애셋을 '투명'하게 만들고 Physics를 'No collision'로 설정합니다.
알을 감지하게 만들 플랫폼 아래로 애셋을 이동합니다.
이제 플랫폼으로 알을 가져가면 투명한 오브젝트가 알 애셋에 추가된 'Egg' 태그를 감지하여 플랫폼으로 'Asset Spawner' 메시지를 보내 프리셋 'Gold Key'를 생성합니다. 플레이어는 금열쇠를 모아 문을 열 수 있습니다.
보너스로 한 가지 더 알아보죠! 다른 메시지를 보내지 않으면 다시 열 수 없게 플레이어가 지나가면 문을 닫도록 탐지기를 설치할 수 있습니다.
'L' 키를 눌러 애셋 라이브러리에서 작은 애셋 하나를 선택합니다. 이 예시에서는 'NumPad Switch'를 사용했습니다.
애셋을 '투명'하게 만들고 Physics를 'No collision'로 설정합니다.
추가된 비헤이비어가 있다면 삭제하고 'Speaker' 컴포넌트를 추가합니다.
'Display condition'을 'DetectEntity'로, 'Detection Range'를 '4'로 설정합니다.
'Target Tags'를 'Avatar'로 남겨 둡니다.
'Message When Spoken'을 'CloseDoor'로 설정합니다.
이제 플레이어가 문을 통과할 때 투명한 오브젝트가 아바타를 감지하고 문을 닫는 'CloseDoor' 메시지를 전송합니다. 정말 멋지죠!