Nähe-Hinweis

*Dieser Inhalt wurde mit KI (Beta) übersetzt und kann Fehler enthalten. Um diese Seite auf Englisch zu sehen, klicke hier.

ProximityPrompt Objekte ermutigen Benutzerinteraktionen, um eine Aktion auszulösen, wenn sie sich in Erfahrungsobjekten wie Türen, Lichtschalter und Schaltflächen nähern. Wenn Sie dieses Objekt verwenden, können Sie:

  • Zeigen Sie, mit welchen Objekten ein Benutzer in der Erlebnisinteragieren kann.
  • Zeigen Sie die Aktion, die ein Benutzer auf dem Objekt ausführen kann, und dann trigen Sie die Aktion durch Benutzer-Eingabe, z. B. durch Drücken oder Halten eines Schlüssels.
  • Zeigen Sie die richtige Eingabe für alle Eingabetypen, wie eine Tastatur, eine Spielpad und Touchscreen-Schlüssel.

Nähe-Prompts erstellen

Du musst Entfernungsvorschläge für das Teil, das Modell oder die Anbauten, die du möchtest, dass ein Benutzer mit interagiert. Um eine Entfernungsvorschlag zu einem BasePart , Model oder Attachment Objekt hinzuzufügen:

  1. In dem Explorer-Fenster bewegen Sie den Mauszeiger über die BasePart , Model oder 1> Class.附Button1> und klicken Sie auf die Schaltfläche ⊕ . Ein Kontextmenü wird angezeigt.

  2. Von dem Menü, fügen Sie einen ProximityPrompt ein.

    Explorer hierarchy showing a ProximityPrompt parented to an Attachment

Nutzerdefinierte Eingabeaufforderungen

Du kannst eine Nähe-Eingabe anpassen, basierend darauf, wie du sie sehen möchtest, wenn du sie sichtbar machen möchtest und was du von einem Benutzer zum Auslösen der Aktion tun möchtest.

Aussehen

Proximity-Eingaben müssen drei Dinge kommunizieren:

  • Das Objekt , mit dem ein Benutzer interagieren kann.
  • Die Aktion , die ausgelöst wird, wenn sie mit der Nähe-Anfrage interagieren.
  • Der Schlüssel , den ein Benutzer drücken oder halten muss.

Sie können diese über die folgenden Eigenschaften spezifizieren:

  • ObjectText Ein optionales Name für das Objekt, mit dem ein Benutzer interagieren kann.

  • ActionText Ein optionales Name für die Aktion, die ein Benutzer Auslöser.

  • KeyboardKeyCode Der Tastatur-Key, den ein Benutzer drücken oder halten muss, um die Actionauszulösen.

  • GamepadKeyCode Der Gamepad-Taste, die ein Benutzer drücken oder halten muss, um die Actionauszulösen.

    Diagram indicating basic elements of a ProximityPrompt

Sichtbarkeit

Sie können steuern, wenn die Nähe-Anfrage durch ihre MaxActivationDistance , RequiresLineOfSight und Exclusivity-Eigenschaften sichtbar ist.

MaxAktivierungsreichweite

Die MaxActivationDistance Eigenschaft ermöglicht es Ihnen, die Reichweite von rund um das ProximityPrompt -Objekt, das die Sichtbarkeit des Nähe-Hinweises aktiviert. Sobald ein Benutzer seinen Charakter in diese Reichweite eingibt, wird der Nähe-Hinweis sichtbar.

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

BenötigtSichtweite

Die RequiresLineOfSight-Eigenschaft aktiviert die Sichtbarkeit des Nähe-提示, wenn ein klarer Weg von der Kamera zum ProximityPrompt-Objekt vorhanden ist. Standardmäßig ist diese Eigenschaft auf true gesetzt.

Ausschließlichkeit

Wenn der Charakter eines Benutzers innerhalb der Reichweite mehrerer Nähe-Anfragen ist, hängt die Sichtbarkeit jedes Nähe-Anfrage von der Art und Weise, auf die die Kamera zeigt, sowie von der Eigenschaft Exclusivity der jeweiligen Nähe-Anfrage ab.

ProximityPrompt objects set to exclusivity of OnePerButton
Nur eine Nähe-Eingabe-Anfrage ist pro Schlüsselcode sichtbar. Wenn mehrere Nähe-Eingabe-Anfragen einen anderen Schlüsselcode verwenden, sind sie alle sichtbar. Wenn jedoch mehrere Nähe-Eingabe-Anfragen den gleichen Schlüsselcode verwenden, ist nur eine Nähe-Eingabe-Anfrage pro Schlüsselcode sichtbar, abhängig von der Kamera-Ansicht.

Interaktivität

Du kannst anpassen, wie ein Benutzer mit einem Nähe-Eingabefeld interagiert, durch seine HoldDuration und ClickablePrompt-Eigenschaften.

Haltezeit

Die HoldDuration -Eigenschaft bestimmt, wie viele Sekunden ein Benutzer haben muss, um einen Key zu drücken, bevor die Nähe-Anfrage ausgelöst wird. Wenn diese Eigenschaft einen Wert von 0 hat, wird die Nähe-Anfrage sofort ausgelöst.

Klickbare Anfrage

Die ClickablePrompt -Eigenschaft bestimmt, ob ein Benutzer auf einen Nähe-Hinweis klicken kann, um seine Actionauszulösen. Wenn auf true gesetzt, kann ein Benutzer mit dem Schlüsseldirekt klicken, indem er den Nähe-Hinweis oder an

Skript-Nähe-Befehle

Du kannst dich an Nähe-Ereigniselektions-Ereignissen auf der ProximityPrompt -Objekt selbst oder global über ProximityPromptService verbinden. Der ProximityPromptService ermöglicht dir, das Nähe-Ereigniselektionsverhalten aus einer einzigen Position zu verwalten, wodurch keine Duplikatschlüssel in deiner Erlebniserforderlich sind.

EreignisBeschreibung
PromptTriggeredFeuert ab, wenn ein Spieler mit einer Nähe-Anfrage interagiert (nach der Dauer für eine Anfrage mit nicht null HoldDuration ).
PromptTriggerEndedLöst aus, wenn der Spieler mit einer Näherungsmeldung aufhört zu interagieren.
PromptButtonHoldBeganFeuert, wenn ein Spieler mit einem Nicht-Zero-Wert HoldDuration beginnt, mit einem Proximity-Prompt zu interagieren.
PromptButtonHoldEndedFeuert, wenn ein Spieler mit einer Nicht-Zero-Werte HoldDuration -Werte aufgibt.
PromptShownLöst in LocalScripts aus, wenn eine Nähe-Anfrage sichtbar wird.
PromptHiddenLöst in LocalScripts aus, wenn eine Anfrage versteckt ist.

Das folgende Codebeispiel enthält eine grundlegende Framework für die Verwendung von ProximityPromptService :


local ProximityPromptService = game:GetService("ProximityPromptService")
-- Erkennen, wenn die Anfrage gezeigt wird
local function onPromptTriggered(promptObject, player)
end
-- Erkennen, wenn die Anfrage gehalten wird
local function onPromptHoldBegan(promptObject, player)
end
-- Erkennen, wenn die Anfrage gehalten wird
local function onPromptHoldEnded(promptObject, player)
end
-- Verbinde Benutzeroereignisse mit Verarbeitungsfunktionen
ProximityPromptService.PromptTriggered:Connect(onPromptTriggered)
ProximityPromptService.PromptButtonHoldBegan:Connect(onPromptHoldBegan)
ProximityPromptService.PromptButtonHoldEnded:Connect(onPromptHoldEnded)