ProximityPrompt obiekty zachęcają do interakcji użytkownika w celu wywołania akcji, gdy zbliżają się do obiektów w doświadczeniu, takich jak drzwi, przełączniki światła i przyciski. Korzystając z tego obiektu, możesz:
- Wskazać, z jakimi obiektami użytkownik może interagować w doświadczeniu.
- Wyświetlić akcję, którą użytkownik może podjąć na obiekcie, a następnie wywołać tę akcję za pomocą wejścia użytkownika, takiego jak naciśnięcie lub przytrzymanie klawisza.
- Wyświetlić poprawne wejście dla wszystkich typów wejść, takich jak klawiatura, kontroler gier i przyciski na ekranie dotykowym.
Tworzenie podpowiedzi bliskości
Musisz przypisać podpowiedzi bliskości do części, modelu lub mocowania, z którym chcesz, aby użytkownik interagował. Aby dodać podpowiedź bliskości do obiektu BasePart, Model lub Attachment:
W oknie Explorer, najedź na BasePart, Model lub Attachment i kliknij przycisk ⊕ . Wyświetli się menu kontekstowe.
Z menu wstaw ProximityPrompt.

Dostosowywanie podpowiedzi bliskości
Możesz dostosować podpowiedź bliskości w oparciu o to, jak chcesz, aby wyglądała, kiedy chcesz, aby była widoczna i co chcesz, aby użytkownik zrobił, aby wywołać akcję.
Wygląd
Podpowiedzi bliskości muszą przekazywać trzy rzeczy:
- obiekt, z którym użytkownik może interagować.
- akcję, która wywołuje, gdy interagują z podpowiedzią bliskości.
- klawisz, który użytkownik musi nacisnąć lub przytrzymać.
Możesz określić te elementy za pomocą następujących właściwości:
ObjectText Opcjonalna nazwa obiektu, z którym użytkownik może interagować.
ActionText Opcjonalna nazwa akcji, którą użytkownik wywoła.
KeyboardKeyCode Klawisz na klawiaturze, który użytkownik musi nacisnąć lub przytrzymać, aby wywołać akcję.
GamepadKeyCode Klawisz na kontrolerze gier, który użytkownik musi nacisnąć lub przytrzymać, aby wywołać akcję.

Widoczność
Możesz kontrolować, kiedy podpowiedź bliskości jest widoczna, za pomocą właściwości MaxActivationDistance, RequiresLineOfSight, oraz Exclusivity.
MaxActivationDistance
Właściwość MaxActivationDistance pozwala zdefiniować zasięg wokół obiektu ProximityPrompt, który aktywuje widoczność podpowiedzi bliskości. Gdy postać użytkownika wejdzie w ten zasięg, podpowiedź bliskości staje się widoczna.

RequiresLineOfSight
Właściwość RequiresLineOfSight aktywuje widoczność podpowiedzi bliskości, gdy istnieje wyraźna ścieżka od kamery do obiektu ProximityPrompt. Domyślnie ta właściwość jest ustawiona na prawda.
Exclusivity
Jeśli postać użytkownika znajduje się w zasięgu wielu podpowiedzi bliskości, widoczność każdej z nich zależy od tego, na którą podpowiedź bliskości kamera jest skierowana, a także od wartości właściwości Exclusivity każdej podpowiedzi bliskości.

Interaktywność
Możesz dostosować sposób interakcji użytkownika z podpowiedzią bliskości za pomocą właściwości HoldDuration oraz ClickablePrompt.
HoldDuration
Właściwość HoldDuration określa, ile sekund użytkownik musi nacisnąć klawisz zanim wywoła się akcja podpowiedzi bliskości. Jeśli ta właściwość ma wartość 0, akcja podpowiedzi bliskości wywołuje się natychmiast.
ClickablePrompt
Właściwość ClickablePrompt określa, czy użytkownik może kliknąć na podpowiedź bliskości, aby wywołać jej akcję. Gdy jest ustawiona na prawda, użytkownik może interagować z podpowiedzią bliskości przez bezpośrednie kliknięcie podpowiedzi bliskości lub przez naciśnięcie określonego klawisza. Gdy jest ustawiona na fałsz, użytkownik może interagować z podpowiedzią bliskości tylko poprzez naciśnięcie określonego klawisza.
Skryptowanie podpowiedzi bliskości
Możesz podłączyć się do zdarzeń podpowiedzi bliskości zarówno na obiekcie ProximityPrompt, jak i globalnie przez ProximityPromptService. ProximityPromptService pozwala zarządzać wszystkimi zachowaniami podpowiedzi bliskości z jednego miejsca, eliminując potrzebę duplikowania kodu w doświadczeniu.
| Wydarzenie | Opis |
|---|---|
| PromptTriggered | Aktywuje się, gdy gracz interaguje z podpowiedzią bliskości (po czasie dla podpowiedzi z niezerową wartością HoldDuration). |
| PromptTriggerEnded | Aktywuje się, gdy gracz przestaje interagować z podpowiedzią bliskości. |
| PromptButtonHoldBegan | Aktywuje się, gdy gracz rozpoczyna interakcję z podpowiedzią bliskości z niezerową wartością HoldDuration. |
| PromptButtonHoldEnded | Aktywuje się, gdy gracz przestaje interagować z podpowiedzią bliskości z niezerową wartością HoldDuration. |
| PromptShown | Aktywuje się w LocalScripts, gdy podpowiedź bliskości staje się widoczna. |
| PromptHidden | Aktywuje się w LocalScripts, gdy podpowiedź jest ukryta. |
Poniższy przykład kodu zawiera podstawowy szkielet używania ProximityPromptService:
local ProximityPromptService = game:GetService("ProximityPromptService")
-- Wykrywanie, gdy podpowiedź jest wywoływana
local function onPromptTriggered(promptObject, player)
end
-- Wykrywanie, gdy przytrzymanie podpowiedzi się rozpoczyna
local function onPromptHoldBegan(promptObject, player)
end
-- Wykrywanie, gdy przytrzymanie podpowiedzi się kończy
local function onPromptHoldEnded(promptObject, player)
end
-- Połączenie zdarzeń podpowiedzi z funkcjami obsługi
ProximityPromptService.PromptTriggered:Connect(onPromptTriggered)
ProximityPromptService.PromptButtonHoldBegan:Connect(onPromptHoldBegan)
ProximityPromptService.PromptButtonHoldEnded:Connect(onPromptHoldEnded)