ProximityPrompt-Objekte fördern die Interaktion der Benutzer, um eine Aktion auszulösen, wenn sie sich in-game Objekten wie Türen, Lichtschaltern und Tasten nähern. Mit diesem Objekt können Sie:
- Angeben, mit welchen Objekten ein Benutzer im Spiel interagieren kann.
- Die Aktion anzeigen, die ein Benutzer an dem Objekt ausführen kann, und dann die Aktion durch Benutzereingaben wie das Drücken oder Halten einer Taste auslösen.
- Die korrekte Eingabe für alle Eingabetypen anzeigen, wie z. B. Tastatur-, Gamepad- und Touchscreen-Tasten.
Näheaufforderungen erstellen
Sie müssen Näheaufforderungen an das Teil, Modell oder die Anhängung anheften, mit dem ein Benutzer interagieren soll. Um eine Näheaufforderung zu einem BasePart, Model oder Attachment-Objekt hinzuzufügen:
Bewegen Sie im Explorer-Fenster den Mauszeiger über das BasePart, Model oder Attachment und klicken Sie auf die ⊕-Schaltfläche. Ein kontextbezogenes Menü wird angezeigt.
Fügen Sie aus dem Menü eine ProximityPrompt ein.

Näheaufforderungen anpassen
Sie können eine Näheaufforderung anpassen, basierend darauf, wie Sie möchten, dass sie erscheint, wann Sie möchten, dass sie sichtbar ist, und was Sie möchten, dass ein Benutzer tun muss, um die Aktion auszulösen.
Erscheinungsbild
Näheaufforderungen müssen drei Dinge kommunizieren:
- Das Objekt, mit dem ein Benutzer interagieren kann.
- Die Aktion, die ausgelöst wird, wenn sie mit der Näheaufforderung interagieren.
- Die Taste, die ein Benutzer drücken oder halten muss.
Sie können diese über die folgenden Eigenschaften angeben:
ObjectText Ein optionaler Name für das Objekt, mit dem ein Benutzer interagieren kann.
ActionText Ein optionaler Name für die Aktion, die ein Benutzer auslösen wird.
KeyboardKeyCode Die Tastaturtaste, die ein Benutzer drücken oder halten muss, um die Aktion auszulösen.
GamepadKeyCode Die Gamepad-Taste, die ein Benutzer drücken oder halten muss, um die Aktion auszulösen.

Sichtbarkeit
Sie können steuern, wann die Näheaufforderung sichtbar ist, durch ihre MaxActivationDistance, RequiresLineOfSight und Exclusivity Eigenschaften.
MaxActivationDistance
Die MaxActivationDistance-Eigenschaft ermöglicht es Ihnen, den Bereich um das ProximityPrompt-Objekt zu definieren, der die Sichtbarkeit der Näheaufforderung aktiviert. Sobald der Charakter eines Benutzers diesen Bereich betritt, wird die Näheaufforderung sichtbar.

RequiresLineOfSight
Die RequiresLineOfSight-Eigenschaft aktiviert die Sichtbarkeit der Näheaufforderung, wenn es einen klaren Weg von der Kamera zum ProximityPrompt-Objekt gibt. Standardmäßig ist diese Eigenschaft auf true gesetzt.
Exclusivity
Wenn sich der Charakter eines Benutzers im Bereich mehrerer Näheaufforderungen befindet, hängt die Sichtbarkeit jeder Näheaufforderung davon ab, auf welche Näheaufforderung die Kamera zeigt, sowie vom Wert der Exclusivity-Eigenschaft jeder Näheaufforderung.

Interaktivität
Sie können anpassen, wie ein Benutzer mit einer Näheaufforderung interagiert, durch die Eigenschaften HoldDuration und ClickablePrompt.
HoldDuration
Die HoldDuration-Eigenschaft bestimmt, wie viele Sekunden ein Benutzer eine Taste drücken muss, bevor die Aktion der Näheaufforderung ausgelöst wird. Wenn diese Eigenschaft den Wert 0 hat, wird die Aktion der Näheaufforderung sofort ausgelöst.
ClickablePrompt
Die ClickablePrompt-Eigenschaft gibt an, ob ein Benutzer auf eine Näheaufforderung klicken kann, um ihre Aktion auszulösen. Wenn sie auf true gesetzt ist, kann ein Benutzer mit der Näheaufforderung interagieren, indem er direkt auf die Näheaufforderung oder die angegebene Taste drückt. Wenn sie auf false gesetzt ist, kann ein Benutzer nur mit der Näheaufforderung interagieren, indem er die angegebene Taste drückt.
Skript-Näheaufforderungen
Sie können sich entweder mit den Näheaufforderungsereignissen auf dem ProximityPrompt-Objekt selbst oder global über ProximityPromptService verbinden. Der ProximityPromptService ermöglicht es Ihnen, das gesamte Verhalten der Näheaufforderungen von einem Ort aus zu verwalten, wodurch die Notwendigkeit für doppelten Code in Ihrem Spiel entfällt.
| Event | Beschreibung |
|---|---|
| PromptTriggered | Wird ausgelöst, wenn ein Spieler mit einer Näheaufforderung interagiert (nach der Dauer für eine Aufforderung mit einem Wert von HoldDuration, der ungleich null ist). |
| PromptTriggerEnded | Wird ausgelöst, wenn der Spieler die Interaktion mit einer Näheaufforderung stoppt. |
| PromptButtonHoldBegan | Wird ausgelöst, wenn ein Spieler mit einer Näheaufforderung mit einem Wert von HoldDuration, der ungleich null ist, zu interagieren beginnt. |
| PromptButtonHoldEnded | Wird ausgelöst, wenn ein Spieler die Interaktion mit einer Näheaufforderung mit einem Wert von HoldDuration, der ungleich null ist, stoppt. |
| PromptShown | Wird in LocalScripts ausgelöst, wenn eine Näheaufforderung sichtbar gemacht wird. |
| PromptHidden | Wird in LocalScripts ausgelöst, wenn eine Aufforderung ausgeblendet wird. |
Das folgende Codebeispiel enthält ein grundlegendes Framework zur Verwendung von ProximityPromptService:
local ProximityPromptService = game:GetService("ProximityPromptService")
-- Erkennen, wenn die Aufforderung ausgelöst wird
local function onPromptTriggered(promptObject, player)
end
-- Erkennen, wenn das Halten der Aufforderung beginnt
local function onPromptHoldBegan(promptObject, player)
end
-- Erkennen, wenn das Halten der Aufforderung endet
local function onPromptHoldEnded(promptObject, player)
end
-- Verbinden Sie die Aufforderungsereignisse mit den Handhabungsfunktionen
ProximityPromptService.PromptTriggered:Connect(onPromptTriggered)
ProximityPromptService.PromptButtonHoldBegan:Connect(onPromptHoldBegan)
ProximityPromptService.PromptButtonHoldEnded:Connect(onPromptHoldEnded)