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:
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.
Von dem Menü, fügen Sie einen ProximityPrompt ein.
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.
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.
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.
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.
Ereignis | Beschreibung |
---|---|
PromptTriggered | Feuert ab, wenn ein Spieler mit einer Nähe-Anfrage interagiert (nach der Dauer für eine Anfrage mit nicht null HoldDuration ). |
PromptTriggerEnded | Löst aus, wenn der Spieler mit einer Näherungsmeldung aufhört zu interagieren. |
PromptButtonHoldBegan | Feuert, wenn ein Spieler mit einem Nicht-Zero-Wert HoldDuration beginnt, mit einem Proximity-Prompt zu interagieren. |
PromptButtonHoldEnded | Feuert, wenn ein Spieler mit einer Nicht-Zero-Werte HoldDuration -Werte aufgibt. |
PromptShown | Löst in LocalScripts aus, wenn eine Nähe-Anfrage sichtbar wird. |
PromptHidden | Lö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)