ProximityPrompt 개체는 사용자가 경험 내 개체, 예를 들어 문, 조명 스위치 및 버튼에 다가갈 때 작업을 트리거하도록 장려합니다. 이 개체를 사용하면 다음을 할 수 있습니다.
- 사용자가 경험에서 상호 작용할 수 있는 개체를 나타냅니다.
- 사용자가 개체에서 수행할 수 있는 동작을 표시한 다음 키를 누르거나 길게 누르는 등의 사용자 입력을 통해 동작을 트리거합니다.
- 모든 입력 유형에 대해 올바른 입력을 표시합니다. 키보드, 게임 패드 및 터치 스크린 키.
근접 프롬프트 생성
사용자가 상호 작용하려는 부품, 모델 또는 부착을 부모로 지정해야 합니다. 부모에 근접 프롬프트를 추가하려면 BasePart, Model 또는 Attachment 개체를 부모로 지정합니다.
- 메뉴에서 근접 프롬프트를 삽입합니다.
근접 프롬프트 사용자 정의
원하는 대로 가까이 얻기 위해 표시하려는 위치, 표시하려는 경우 사용자가 수행해야 하는 작업 및 응용 프로그램을 사용자 지정할 수 있습니다.You can customize a proximity prompt based on how you want it to appear , when you want it to be visible , and what you want a user to do to trigger the action .
모양
근접 프롬프트는 다음과 같은 세 가지 메시지를 전달해야 합니다.
- 사용자가 상호 작용할 수 있는 개체 입니다.
- 근접 프롬프트와 상호 작용할 때 트리거되는 액션 입니다.
- 사용자가 누르거나 길게 누르어야 하는 키 .
다음 속성을 통해 지정할 수 있습니다:
ObjectText 사용자가 상호 작용할 수 있는 개체의 옵션 이름입니다.
ActionText 사용자가 트리거하는 동작에 대한 옵션 이름.
KeyboardKeyCode 사용자가 액션을 트리거하려면 키보드 키를 누르거나 길게 누르면 됩니다.
GamepadKeyCode 사용자가 트리거할 액션실행하려면 게임 패드 키를 누르거나 길게 누르면 됩니다.
가시성
근접 프롬프트가 표시되면 근접 프롬프트 모드 MaxActivationDistance, RequiresLineOfSight, 그리고 Exclusivity 속성을 통해 제어할 수 있습니다.
최대 활성화 거리
Class.ProximityPrompt.MaxActivationDistance|MaxActivationDistance 속성을 사용하면 근접 프롬프트 활성화 거리 주위의 범위를 정의할 수 있습니다. 사용자 캐릭터가 그 범위에 들어가면 근접 프롬프트가 표시됩니다.
시야선 필요
Class.ProximityPrompt.RequiresLineOfSight|RequiresLineOfSight 속성은 카메라에서 Class.ProximityPrompt 개체로 가는 길이 명확한 경우 근접 프롬프트의 가시성을 활성화합니다. 기본적으로 이 속성은 ProximityPrompt 개체에 설정되어 있습니다.
독점
사용자의 캐릭터가 여러 근접 프롬프트 범위 내에 있으면 각 근접 프롬프트의 가시성은 카메라가 향할 가까이 프롬프트에 대한 카메라의 가시성과 각 근접 프롬프트의 Exclusivity 속성 값에 따라 달라집니다.
인터액티비티
사용자가 근접 프롬프트를 통해 상호 작용하는 방법을 사용자 정의할 수 있습니다. HoldDuration 및 ClickablePrompt 속성을 통해.
지속 시간
Class.ProximityPrompt.HoldDuration|HoldDuration 속성은 근접 프롬프트의 작동 시 사용자가 키를 누르기까지 걸리는 시간을 결정합니다. 이 속성에 값이 0인 경우, 근접 프롬프트의 작동이 즉시 트리거됩니다.
클릭 가능한 프롬프트
Class.ProximityPrompt.ClickablePrompt|ClickablePrompt 속성은 사용자가 근접 프롬프트를 클릭하여 액션트리거할 수 있는지 여부를 지정합니다. 설정을 진실 로 설정하면 사용자는 근접 프롬프트를 직접
근접 프롬프트 스크립트
Class.ProximityPrompt 개체 자체 또는 전역에서 근접 프롬프트 이벤트에 연결할 수 있습니다. ProximityPromptService 를 통해 모든 근접 프롬프트 이벤트를 관리할 수 있으므로 경험에 중복 코드가 필요 없습니다.
이벤트 | 설명 |
---|---|
PromptTriggered | 근접 프롬프트와 상호 작용할 때 화면( Class.ProximityPrompt.HoldDuration|HoldDuration)에 대한 지속 시간이 끝난 후 화면에 표시됩니다. |
PromptTriggerEnded | 근접 프롬프트와 상호 작용을 중지할 때 트리거됩니다. |
PromptButtonHoldBegan | 근접 프롬프트에 대한 플레이어의 상호 작용 시작 시 발생합니다. 값이 0이 아닌 HoldDuration 입니다. |
PromptButtonHoldEnded | 근접 프롬프트에 대한 플레이어의 상호 작용 중지 시간이 0이 아닌 값으로 HoldDuration 일 때 화면에 표시됩니다. |
PromptShown | 근접 프롬프트가 표시될 때 LocalScripts 에서 트리거. |
PromptHidden | 프롬프트가 숨겨진 경우 LocalScripts 에서 트리거. |
다음 코드 샘플에는 ProximityPromptService를 사용하는 기본 프레임워크가 포함되어 있습니다.
local ProximityPromptService = game:GetService("ProximityPromptService")
-- 프롬프트가 트리거될 때 감지
local function onPromptTriggered(promptObject, player)
end
-- 프롬프트 홀드가 시작될 때 감지
local function onPromptHoldBegan(promptObject, player)
end
-- 프롬프트 보유가 끝나면 감지
local function onPromptHoldEnded(promptObject, player)
end
-- 처리 함수에 이벤트 연결
ProximityPromptService.PromptTriggered:Connect(onPromptTriggered)
ProximityPromptService.PromptButtonHoldBegan:Connect(onPromptHoldBegan)
ProximityPromptService.PromptButtonHoldEnded:Connect(onPromptHoldEnded)