Powiadomienia o zbliżeniu

*Ta zawartość została przetłumaczona przy użyciu narzędzi AI (w wersji beta) i może zawierać błędy. Aby wyświetlić tę stronę w języku angielskim, kliknij tutaj.

ProximityPrompt obiekty zachęcają użytkownika do interakcji, aby uruchomić akcję, gdy zbliżają się do obiektów doświadczenia, takich jak drzwi, przełączniki światła i przyciski.Używając tego obiektu, możesz:

  • Wskaż, z jakimi obiektami użytkownik może interakcjonować w doświadczeniu.
  • Wyświetl akcję, którą użytkownik może wykonać na obiekcie, a następnie uruchom akcję za pomocą wejścia użytkownika, takiego jak naciśnięcie lub przytrzymanie klucz.
  • Wyświetl poprawny input dla wszystkich typów wejść, takich jak klawiatura, gamepad i klawisze dotykowe.

Twórz powiadomienia o zbliżeniu

Musisz przypisać powiadomienia o odległości do części, modelu lub załącznika, z którym chcesz, aby użytkownik wchodził w interakcję.Aby dodać powiadomienie o zbliżeniu do obiektu BasePart, Model lub Attachment:

  1. W oknie Eksploratora przewiń nad BasePart, Model lub Attachment i kliknij przycisk ⊕. Wyświetla się menu kontekstowe.

  2. Z menu wstawь ProximityPrompt .

    Explorer hierarchy showing a ProximityPrompt parented to an Attachment

Dostosuj prośby o zbliżenie

Możesz dostosować powiadomienie o zbliżeniu w oparciu o to, jak chcesz, aby wyglądało, kiedy chcesz, aby było widoczne, i co chcesz, aby użytkownik zrobił, aby uruchomić akcję.

Wygląd

Powiadomienia o zbliżeniu muszą komunikować trzy rzeczy:

  • Obiekt z którym użytkownik może interakcjonować , z którym użytkownik może interakcjonować.
  • Akcja akcja , która uruchamia się, gdy interakują z poleceniem zbliżenia.
  • Klucz który musi nacisnąć lub trzymać użytkownik , który musi nacisnąć lub trzymać użytkownik

Możesz określić je za pomocą następujących właściwości:

  • ObjectText Opcjonalna nazwa obiektu, z którym użytkownik może interakcjonować.

  • ActionText Opcjonalna nazwa dla akcji, którą użytkownik uruchomi.

  • KeyboardKeyCode Klawisz klawiatury, który musi nacisnąć lub przytrzymać użytkownik, aby uruchomić akcji.

  • GamepadKeyCode Klawisz gamepada, który musi nacisnąć lub przytrzymać użytkownik, aby uruchomić akcji.

    Diagram indicating basic elements of a ProximityPrompt

Widoczność

Możesz kontrolować, kiedy komunikat o zbliżeniu jest widoczny poprzez jego MaxActivationDistance , RequiresLineOfSight i Exclusivity właściwości.

Maksymalny dystans aktywacji

Właściwość MaxActivationDistance pozwala na określenie zakresu wokół obiektu ProximityPrompt, który aktywuje widoczność powiadomienia o zbliżeniu.Gdy charakter użytkownika wchodzi w zasięg, powiadomienie o zbliżeniu staje się widoczne.

Diagram indicating how a character's distance from a ProximityPrompt object affects whether the prompt appears on screen

Wymaga linii widzenia

Właściwość aktywuje widoczność monitu o zbliżenie, gdy istnieje wyraźna ścieżka z kamery do obiektu >.Domyślnie właściwość ta jest ustawiona na prawdę.

Ekskluzywność

Jeśli postać użytkownika znajduje się w zasięgu wielu powiadomień o zbliżeniu, widoczność każdego powiadomienia o zbliżeniu zależy od tego, na które powiadomienie o zbliżeniu aparat wskazuje, a także od wartości właściwości każdego powiadomienia o zbliżeniu.

ProximityPrompt objects set to exclusivity of OnePerButton
Tylko jedno powiadomienie o zbliżeniu jest widoczne za każdym kluczem wejściowym.Jeśli wiele promptów zbliżeniowych w zasięgu używa różnych kodów kluczy, wszystkie są widoczne.Jeśli jednak wielokrotnie używane są prośby o zbliżenie w zasięgu, każde z nich używa tego samego kodu, tylko jedna prośba o zbliżenie jest widoczna jednocześnie, w zależności od kierunku widoku kamery.

Interaktywność

Możesz dostosować sposób interakcji użytkownika z powiadomieniem o zbliżeniu za pomocą jego właściwości HoldDuration i ClickablePrompt.

Przytrzymaj czas trwania

Właściwość HoldDuration określa, ile sekund użytkownik musi nacisnąć klawisz przed uruchomieniem akcji komunikatu zbliżeniowego.Jeśli ta właściwość ma wartość 0, działanie powiadomienia o zbliżeniu uruchamia się natychmiast.

Klikalny wyskakujący prompt

Właściwość ClickablePrompt określa, czy użytkownik może kliknąć na komunikat o zbliżeniu, aby uruchomić swoją akcji.Gdy ustawiono na prawdę , użytkownik może wchodzić w interakcję z powiadomieniem o zbliżeniu, klikając bezpośrednio powiadomienie o zbliżeniu lub poprzez naciśnięcie określonego klucz.Gdy ustawiono na fałsz , użytkownik może interakować z powiadomieniem o zbliżeniu tylko poprzez naciśnięcie określonego klucz.

Powiadomienia o zbliżeniu skryptów

Możesz połączyć się z wydarzeniami powiadomienia o zbliżeniu na obiekcie ProximityPrompt lub globalnie za pośrednictwem ProximityPromptService .The ProximityPromptService pozwala zarządzać całym zachowaniem powiadomienia o zbliżeniu z jednego miejsca, zapobiegając potrzebie powielania kodu w twoim doświadczeniu.

WydarzenieOpis
PromptTriggeredWystrzeliwuje, gdy gracz interakuje z powiadomieniem o zbliżeniu (po okresie dla powiadomienia z niezerowym HoldDuration ).
PromptTriggerEndedWyzwala się, gdy gracz przestaje interakcjonować z powiadomieniem o zbliżeniu.
PromptButtonHoldBeganWystrzeliwuje, gdy gracz zaczyna interakcję z prośbą o zbliżenie z wartością niezerową HoldDuration .
PromptButtonHoldEndedWystrzeliwuje, gdy gracz przestaje interakcjonować z prośbą o zbliżenie o wartości niezerowej HoldDuration .
PromptShownWykrywacze w LocalScripts gdy powiadomienie o zbliżeniu zostanie widoczne.
PromptHiddenWykrywacze w LocalScripts kiedy okno jest ukryte.

Poniższy przykład kodu zawiera podstawowe ramy dla korzystania z ProximityPromptService :


local ProximityPromptService = game:GetService("ProximityPromptService")
-- Wykryj, kiedy wyskakuje monit,
local function onPromptTriggered(promptObject, player)
end
-- Wykryj, kiedy rozpoczyna się utrzymywanie monitu
local function onPromptHoldBegan(promptObject, player)
end
-- Wykryj, kiedy końce przytrzymywania są aktywne
local function onPromptHoldEnded(promptObject, player)
end
-- Połącz zdarzenia wstępne z funkcjami obsługi
ProximityPromptService.PromptTriggered:Connect(onPromptTriggered)
ProximityPromptService.PromptButtonHoldBegan:Connect(onPromptHoldBegan)
ProximityPromptService.PromptButtonHoldEnded:Connect(onPromptHoldEnded)