ProximityPrompt obiekty zachęcają do interakcji użytkownika, aby wywołać akcję, gdy zbliżają się do obiektów w grze, takich jak drzwi, włączniki światła i przyciski. Używając tego obiektu, możesz:
- Wskazać, które obiekty użytkownik może interaktywować w grze.
- Wyświetlić akcję, którą użytkownik może wykonać 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 klawisze ekranu dotykowego.
Tworzenie podpowiedzi z bliskiego zasięgu
Musisz przypisać podpowiedzi z bliskiego zasięgu do części, modelu lub załącznika, z którym chcesz, aby użytkownik wchodził w interakcję. Aby dodać podpowiedź z bliskiego zasięgu do obiektu BasePart, Model lub Attachment:
W oknie Eksploratora najedź na BasePart, Model lub Attachment i kliknij przycisk ⊕. Wyświetli się menu kontekstowe.
Z menu wstaw ProximityPrompt.

Dostosowywanie podpowiedzi z bliskiego zasięgu
Możesz dostosować podpowiedź z bliskiego zasięgu w zależności od tego, 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 z bliskiego zasięgu muszą komunikować trzy rzeczy:
- obiekt, z którym użytkownik może wchodzić w interakcję.
- akcję, która jest wywoływana, gdy wchodzą w interakcję z podpowiedzią z bliskiego zasięgu.
- klawisz, który użytkownik musi nacisnąć lub przytrzymać.
Możesz określić te właściwości za pomocą następujących właściwości:
ObjectText Opcjonalna nazwa obiektu, z którym użytkownik może wchodzić w interakcję.
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, który użytkownik musi nacisnąć lub przytrzymać, aby wywołać akcję.

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

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

Interaktywność
Możesz dostosować sposób, w jaki użytkownik wchodzi w interakcję z podpowiedzią z bliskiego zasięgu za pomocą właściwości HoldDuration i ClickablePrompt.
HoldDuration
Właściwość HoldDuration określa, ile sekund użytkownik musi nacisnąć klawisz, zanim akcja podpowiedzi z bliskiego zasięgu zostanie wywołana. Jeśli ta właściwość ma wartość 0, akcja podpowiedzi z bliskiego zasięgu jest wywoływana natychmiast.
ClickablePrompt
Właściwość ClickablePrompt określa, czy użytkownik może kliknąć podpowiedź z bliskiego zasięgu, aby wywołać jej akcję. Gdy jest ustawiona na true, użytkownik może wchodzić w interakcję z podpowiedzią z bliskiego zasięgu, klikając bezpośrednio podpowiedź z bliskiego zasięgu lub naciskając określony klawisz. Gdy jest ustawiona na false, użytkownik może wchodzić w interakcję z podpowiedzią z bliskiego zasięgu tylko poprzez naciśnięcie określonego klawisza.
Skryptowanie podpowiedzi z bliskiego zasięgu
Możesz połączyć się z wydarzeniami podpowiedzi z bliskiego zasięgu zarówno na obiekcie ProximityPrompt, jak i globalnie przez ProximityPromptService. ProximityPromptService pozwala zarządzać wszystkimi zachowaniami podpowiedzi z bliskiego zasięgu z jednego miejsca, zapobiegając potrzebie duplikowania kodu w twojej grze.
| Wydarzenie | Opis |
|---|---|
| PromptTriggered | Wywoływane, gdy gracz wchodzi w interakcję z podpowiedzią z bliskiego zasięgu (po czasie dla podpowiedzi z niezerową wartością HoldDuration). |
| PromptTriggerEnded | Wywoływane, gdy gracz przestaje wchodzić w interakcję z podpowiedzią z bliskiego zasięgu. |
| PromptButtonHoldBegan | Wywoływane, gdy gracz zaczyna wchodzić w interakcję z podpowiedzią z bliskiego zasięgu z niezerową wartością HoldDuration. |
| PromptButtonHoldEnded | Wywoływane, gdy gracz przestaje wchodzić w interakcję z podpowiedzią z bliskiego zasięgu z niezerową wartością HoldDuration. |
| PromptShown | Wywoływane w LocalScripts, gdy podpowiedź z bliskiego zasięgu staje się widoczna. |
| PromptHidden | Wywoływane w LocalScripts, gdy podpowiedź jest ukryta. |
Poniższy przykład kodu zawiera podstawowy szkielet do używania ProximityPromptService:
local ProximityPromptService = game:GetService("ProximityPromptService")
-- Wykryj, kiedy podpowiedź jest wywoływana
local function onPromptTriggered(promptObject, player)
end
-- Wykryj, kiedy zaczyna się przytrzymywanie podpowiedzi
local function onPromptHoldBegan(promptObject, player)
end
-- Wykryj, kiedy kończy się przytrzymywanie podpowiedzi
local function onPromptHoldEnded(promptObject, player)
end
-- Połącz wydarzenia podpowiedzi z funkcjami obsługi
ProximityPromptService.PromptTriggered:Connect(onPromptTriggered)
ProximityPromptService.PromptButtonHoldBegan:Connect(onPromptHoldBegan)
ProximityPromptService.PromptButtonHoldEnded:Connect(onPromptHoldEnded)