ProximityPrompt-Objekte fördern die Interaktion der Benutzer, um eine Aktion auszulösen, wenn sie sich in der Erfahrung Objekten wie Türen, Lichtschaltern und Tasten nähern. Mit diesem Objekt können Sie:
- Angeben, mit welchen Objekten ein Benutzer in der Erfahrung interagieren kann.
- Die Aktion anzeigen, die ein Benutzer mit dem Objekt durchführen kann, und diese Aktion durch Benutzereingaben wie das Drücken oder Halten einer Taste auslösen.
- Die richtige 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 Verbindung anhängen, mit dem ein Benutzer interagieren soll. Um eine Näheaufforderung zu einem BasePart, Model oder Attachment-Objekt hinzuzufügen:
Bewegen Sie den Mauszeiger im Explorer-Fenster über das BasePart, Model oder Attachment und klicken Sie auf die Schaltfläche ⊕. Ein kontextuelles Menü wird angezeigt.
Wählen Sie im Menü eine ProximityPrompt aus.

Näheaufforderungen anpassen
Sie können eine Näheaufforderung anpassen, je nachdem, wie Sie möchten, dass sie erscheint, wann Sie möchten, dass sie sichtbar ist, und was Sie möchten, dass ein Benutzer tut, 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.
Diese können Sie über die folgenden Eigenschaften festlegen:
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 Der 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, über die Eigenschaften MaxActivationDistance, RequiresLineOfSight und Exclusivity.
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 Pfad von der Kamera zum ProximityPrompt-Objekt gibt. Standardmäßig ist diese Eigenschaft auf true gesetzt.
Exclusivity
Wenn der Charakter eines Benutzers im Bereich mehrerer Näheaufforderungen ist, 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, über 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 deren Aktion auszulösen. Wenn auf true gesetzt, kann ein Benutzer mit der Näheaufforderung interagieren, indem er entweder direkt auf die Näheaufforderung klickt oder die angegebene Taste drückt. Wenn auf false gesetzt, kann ein Benutzer nur mit der Näheaufforderung interagieren, indem er die angegebene Taste drückt.
Skripting von Näheaufforderungen
Sie können auf Ereignisse von Näheaufforderungen entweder am ProximityPrompt-Objekt selbst oder global über ProximityPromptService zugreifen. Der ProximityPromptService ermöglicht es Ihnen, das gesamte Verhalten von Näheaufforderungen von einem Ort aus zu steuern, sodass keine doppelten Codes in Ihrer Erfahrung erforderlich sind.
| Ereignis | Beschreibung |
|---|---|
| PromptTriggered | Wird ausgelöst, wenn ein Spieler mit einer Näheaufforderung interagiert (nach der Dauer für eine Aufforderung mit einer nicht null HoldDuration). |
| PromptTriggerEnded | Wird aktiviert, wenn der Spieler die Interaktion mit einer Näheaufforderung stoppt. |
| PromptButtonHoldBegan | Wird ausgelöst, wenn ein Spieler beginnt, mit einer Näheaufforderung mit einem nicht null-Wert für HoldDuration zu interagieren. |
| PromptButtonHoldEnded | Wird ausgelöst, wenn ein Spieler die Interaktion mit einer Näheaufforderung mit einem nicht null-Wert für HoldDuration stoppt. |
| PromptShown | Wird in LocalScripts ausgelöst, wenn eine Näheaufforderung sichtbar gemacht wird. |
| PromptHidden | Wird in LocalScripts ausgelöst, wenn eine Eingabeaufforderung ausgeblendet wird. |
Die folgende Beispielcodeschrift enthält ein einfaches Framework zur Verwendung von ProximityPromptService:
local ProximityPromptService = game:GetService("ProximityPromptService")
-- Erkenne, wenn die Aufforderung ausgelöst wird
local function onPromptTriggered(promptObject, player)
end
-- Erkenne, wenn der Halt beginnt
local function onPromptHoldBegan(promptObject, player)
end
-- Erkenne, wenn der Halt endet
local function onPromptHoldEnded(promptObject, player)
end
-- Verbinde die Aufforderungsereignisse mit den Handhabungsfunktionen
ProximityPromptService.PromptTriggered:Connect(onPromptTriggered)
ProximityPromptService.PromptButtonHoldBegan:Connect(onPromptHoldBegan)
ProximityPromptService.PromptButtonHoldEnded:Connect(onPromptHoldEnded)