Du kannst interaktive Näherungsaufforderungen erstellen, die erscheinen, wenn Benutzer Objekte im Platzansteuern, und dann Aktionen auslösen, wenn der Benutzer eingibt.
Dieses Tutorial verwendet das Dungeon Delve -Projekt als Showcase. Um mitzumachen, öffne es im Studio, bevor du fortfährst.

Erstelle eine Aufforderung
Auf-Bildschirm-Aufforderungen werden von einem ProximityPrompt Objekt erzeugt, das einem Attachment, BasePart oder Model zugewiesen ist.
Wählen Sie das Gefängnistür-Modell in der 3D-Ansicht oder aus dem Explorer ( Arbeitsplatz → PromptObjekte → Gefängnistür ).
Erweitere seinen Baum und wähle das Tür -Objekt aus.
Das Platzieren einer Aufforderung auf einem Attachment gibt Ihnen mehr Kontrolle darüber, wo der Interaktionspunkt auftreten soll, im Vergleich zum Platzieren direkt auf dem Teil/Modell.Füge ein neues Anhang ein und benenne es in Schnellzugriffsanhang um.
Lokalisieren Sie die Position des neuen Anhangs und stellen Sie sie auf -2.25 , -0.5 , - 0.5 ein.Dies wird es vor dem Schlüsselloch der Tür bewegen.
Bewegen Sie den Mauszeiger über Prompt附件 und fügen Sie ein neues ProximityPrompt Objekt ein.
Schnelle Aussehen
Fragen bestehen aus drei primären Elementen, von denen jedes durch die folgenden Eigenschaften gesteuert werden kann:

- Objekttext — ein optioneller Name für das zu interagierende Objekt.
- Aktionstext — Ein optioneller Aktionsname, der dem Benutzer angezeigt wird.
- Tastaturtaste-Code — Die Tastaturtaste, die die Eingabeaufforderung auslöst.
- GamepadKeyCode — Der Spielpad-Button, der die Eingabe auslöst.
Um das Aussehen des Gefängnistür-Prompts anzupassen, machen Sie die folgenden Änderungen:
Suchen Sie im Eigenschaften-Fenster die Eigenschaft Objekttext und geben Sie Tür ein.
Für die Eigenschaften Aktionstext geben Sie Sperre aufheben ein.
Aktivierungsentfernung
Aufforderungen erscheinen, wenn der Benutzer seine Zeiche innerhalb des definierten MaxActivationDistance -Bereichs des übergeordnetes Teildes Prompt-Objekts bewegt.

Der Standardwert funktioniert in den meisten Fällen gut, aber du kannst die Benutzerinteraktion näher am Schloss platzieren, indem du MaxActivationDistance auf 4 änderst.

Haltezeit
Der Haltezeit Wert der Eigenschaft bestimmt, wie schnell die Aktion des Prompts in Sekunden ausgelöst wird.Da diese Tür zum Freischalten ausgewählt werden muss, ändere die Eigenschaft HoldDuration auf 4 .

Implementiere eine Action
Die beste Möglichkeit, schnelle Ereignisse zu erkennen, ist durch ProximityPromptService — dies ermöglicht es Ihnen, Ereignisse zentral zu erkennen, ohne ein Skript an jedes Prompt-Objekt anzuhängen.
Ein grundlegender Rahmen sieht wie folgt aus:
local ProximityPromptService = game:GetService("ProximityPromptService")
-- Erkennen, wenn eine Aufforderung ausgelöst wird
local function onPromptTriggered(promptObject, player)
end
-- Erkennen, wenn die Eingabeaufforderung beginnt
local function onPromptHoldBegan(promptObject, player)
end
-- Erkennen, wenn Prompt-Enden gehalten werden
local function onPromptHoldEnded(promptObject, player)
end
-- Verbinde Ereignisse der Eingabeaufforderung mit Handlungsfunktionen
ProximityPromptService.PromptTriggered:Connect(onPromptTriggered)
ProximityPromptService.PromptButtonHoldBegan:Connect(onPromptHoldBegan)
ProximityPromptService.PromptButtonHoldEnded:Connect(onPromptHoldEnded)
Ereignis | Beschreibung |
---|---|
PromptTriggered | Feuert, wenn ein Benutzer mit einer Aufforderung interagiert ( nach der Dauer für eine Aufforderung mit nicht Null HoldDuration ). |
PromptButtonHoldBegan | Feuert, wenn ein Benutzer beginnt, mit einer Aufforderung von nicht Null zu interagieren HoldDuration. |
PromptButtonHoldEnded | Feuert, wenn ein Benutzer aufhört, mit einer Aufforderung von nicht Null zu interagieren HoldDuration |
Im Dungeon Delve Projekt werden diese Ereignisse von der PromptEvents Skript innerhalb von ServerScriptService verwaltet.

Innerhalb des Skript, das. PL: die Skriptsrufen die oben genannten Ereignisse einfach Funktionen innerhalb der Objektaktionen auf, die sich ebenfalls in ServerScriptService befinden.
local ProximityPromptService = game:GetService("ProximityPromptService")
local ServerScriptService = game:GetService("ServerScriptService")
local ObjectActions = require(ServerScriptService.ObjectActions)
-- Erkennen, wenn eine Aufforderung ausgelöst wird
local function onPromptTriggered(promptObject, player)
ObjectActions.promptTriggeredActions(promptObject, player)
end
-- Erkennen, wenn die Eingabeaufforderung beginnt
local function onPromptHoldBegan(promptObject, player)
ObjectActions.promptHoldBeganActions(promptObject, player)
end
-- Erkennen, wenn Prompt-Enden gehalten werden
local function onPromptHoldEnded(promptObject, player)
ObjectActions.promptHoldEndedActions(promptObject, player)
end
-- Verbinde Ereignisse der Eingabeaufforderung mit Handlungsfunktionen
ProximityPromptService.PromptTriggered:Connect(onPromptTriggered)
ProximityPromptService.PromptButtonHoldBegan:Connect(onPromptHoldBegan)
ProximityPromptService.PromptButtonHoldEnded:Connect(onPromptHoldEnded)
Proximity-Aufforderungen sind eine praktische und anpassbare Lösung für die Interaktion mit Objekten im Spiel.Schau dir die ProximityPrompt und ProximityPromptService Referenzseiten an, um noch mehr Möglichkeiten zum Kontrollieren des Prompt-Verhaltens zu entdecken, und erkunde andere interaktive Objekte in Dungeon Delve für kreative Inspiration.