Näheaufforderungen

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

Sie können interaktive Näheaufforderungen erstellen, die erscheinen, wenn Benutzer sich Objekten im 3D-Raum nähern, und dann Aktionen bei Benutzereingaben auslösen.

Dieses Tutorial verwendet das Projekt Dungeon Delve als Schaufenster. Um mitzumachen, öffnen Sie es in Studio, bevor Sie fortfahren.

Bearbeiten in Studio-Option von der Hauptseite des Spiels

Erstellen Sie eine Aufforderung

Bildschirmaufforderungen werden durch ein ProximityPrompt-Objekt erzeugt, das an ein Attachment, BasePart oder Model angehängt ist.

  1. Wählen Sie das PrisonDoor-Modell in der 3D-Ansicht oder im Explorer (WorkspacePromptObjectsPrisonDoor).

  2. Erweitern Sie den Baum und wählen Sie das Door-Objekt aus.

  3. Das Platzieren einer Aufforderung an einem Attachment gibt Ihnen mehr Kontrolle darüber, wo der Interaktionspunkt erfolgt, im Vergleich zum direkten Platzieren auf dem Teil/Modell. Fügen Sie ein neues Attachment hinzu und benennen Sie es in PromptAttachment um.

  4. Suchen Sie die Position-Eigenschaft des neuen Attachments und setzen Sie sie auf -2.25, -0.5, -0.5. Dies wird es vor dem Schlüsselloch der Tür positionieren.

  5. Fahren Sie mit der Maus über PromptAttachment und fügen Sie ein neues ProximityPrompt-Objekt hinzu.

Erscheinungsbild der Aufforderung

Aufforderungen bestehen aus drei Hauptelementen, von denen jedes durch die folgenden Eigenschaften gesteuert werden kann:

  • ObjectText — Ein optionaler Name für das Objekt, mit dem interagiert wird.
  • ActionText — Ein optionaler Aktionsname, der dem Benutzer angezeigt wird.
  • KeyboardKeyCode — Die Taste auf der Tastatur, die die Aufforderung auslöst.
  • GamepadKeyCode — Die Taste auf dem Gamepad, die die Aufforderung auslöst.

Um das Erscheinungsbild der Aufforderung für die Gefängnistür anzupassen, nehmen Sie die folgenden Änderungen vor:

  1. Suchen Sie im Eigenschaften-Fenster die ObjectText-Eigenschaft und geben Sie Door ein.

  2. Geben Sie für die ActionText-Eigenschaft Pick Lock ein.

Aktivierungsdistanz

Aufforderungen erscheinen, wenn sich die Figur des Benutzers innerhalb des definierten MaxActivationDistance-Bereichs des übergeordneten Aufforderungsobjekts bewegt.

Der Standardwert funktioniert in den meisten Fällen gut, aber Sie können die Benutzerinteraktion näher am Schloss positionieren, indem Sie MaxActivationDistance auf 4 ändern.

Haltezeit

Der Wert der HoldDuration-Eigenschaft bestimmt, wie schnell die Aktion der Aufforderung in Sekunden ausgelöst wird. Da diese Tür geknackt werden muss, um sie zu entriegeln, ändern Sie die HoldDuration-Eigenschaft auf 4.

Implementieren Sie eine Aktion

Der beste Weg, um Aufforderungsereignisse zu erkennen, ist über ProximityPromptService — dies ermöglicht es Ihnen, Ereignisse zentral zu erkennen, ohne ein Skript an jedes Aufforderungsobjekt anzuhängen.

Ein grundlegendes Framework sieht wie folgt aus:

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 Aufforderungsereignisse mit Verarbeitungsfunktionen
ProximityPromptService.PromptTriggered:Connect(onPromptTriggered)
ProximityPromptService.PromptButtonHoldBegan:Connect(onPromptHoldBegan)
ProximityPromptService.PromptButtonHoldEnded:Connect(onPromptHoldEnded)
EventBeschreibung
PromptTriggeredWird ausgelöst, wenn ein Benutzer mit einer Aufforderung interagiert (nach der Dauer für eine Aufforderung mit einer nicht nullen HoldDuration).
PromptButtonHoldBeganWird ausgelöst, wenn ein Benutzer beginnt, mit einer Aufforderung mit einer nicht nullen HoldDuration zu interagieren.
PromptButtonHoldEndedWird ausgelöst, wenn ein Benutzer aufhört, mit einer Aufforderung mit einer nicht nullen HoldDuration zu interagieren.

Im Projekt Dungeon Delve werden diese Ereignisse durch das Skript PromptEvents innerhalb von ServerScriptService verwaltet.

Innerhalb des Skripts rufen die oben genannten Ereignisse einfach Funktionen im ModuleScript ObjectActions auf, das sich ebenfalls in ServerScriptService befindet.

local ProximityPromptService = game:GetService("ProximityPromptService")
local ServerScriptService = game:GetService("ServerScriptService")
local ObjectActions = require(ServerScriptService.ObjectActions)
-- Erkennen, wenn die Aufforderung ausgelöst wird
local function onPromptTriggered(promptObject, player)
ObjectActions.promptTriggeredActions(promptObject, player)
end
-- Erkennen, wenn das Halten der Aufforderung beginnt
local function onPromptHoldBegan(promptObject, player)
ObjectActions.promptHoldBeganActions(promptObject, player)
end
-- Erkennen, wenn das Halten der Aufforderung endet
local function onPromptHoldEnded(promptObject, player)
ObjectActions.promptHoldEndedActions(promptObject, player)
end
-- Verbinden Sie Aufforderungsereignisse mit Verarbeitungsfunktionen
ProximityPromptService.PromptTriggered:Connect(onPromptTriggered)
ProximityPromptService.PromptButtonHoldBegan:Connect(onPromptHoldBegan)
ProximityPromptService.PromptButtonHoldEnded:Connect(onPromptHoldEnded)

Näheaufforderungen sind eine praktische und anpassbare Lösung für die Interaktion mit Objekten im Spiel. Schauen Sie sich die Referenzseiten zu ProximityPrompt und ProximityPromptService an, um noch mehr Möglichkeiten zur Steuerung des Aufforderungsverhaltens zu entdecken, und erkunden Sie andere interaktive Objekte in Dungeon Delve für kreative Inspiration.

©2026 Roblox Corporation. Roblox, das Roblox-Logo und "Powering Imagination" gehören zu unseren eingetragenen und nicht eingetragenen Markenzeichen in den USA und anderen Ländern.