Näherungs-Prompts hinzufügen

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

Du kannst interaktive Nähe-Aufforderungen erstellen, die erscheinen, wenn Benutzer Objekte im Platzansteuern, und dann Aktionen auf Benutzer-Eingaben auslösen.

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

Edit in Studio option from the experience's main page

Erstellen Sie eine Anfrage

Auf-Bildschirm-Eingaben werden von einem ProximityPrompt -Objekt, das an einem Attachment , BasePart oder 2> Class.Model2> generiert wird, erzeugt.

  1. Wählen Sie das PrisonDoor -Modell in der 3D-Ansicht oder von der Explorer ( WorkspacePromptObjects → 1> PrisonDoor1> ).

  2. Erweitere seinen Baum und wähle das Tür-Objekt .

  3. Das Platzieren eines Hinweises auf einem Attachment gibt Ihnen mehr Kontrolle darüber, wo der Interaktionspunkt auftreten kann, als ihn direkt auf das Teil/Modell zu platzieren. Fügen Sie einen neuen Anhang hinzu und benennen Sie ihn zu PromptArrow um.

  4. Suchen Sie die neue Anhang Position -Eigenschaft und setzen Sie sie auf -2.25 , -0.5 , - 1> 0.51> . Dies wird es vor dem Schlüsselloch der Tür bewegen.

  5. Bewegen Sie den Mauszeiger über PromptAttachment und fügen Sie ein neues ProximityPrompt Objekt ein.

Auffälliges Aussehen

Anfragen bestehen aus drei primären Elementen, von denen jeder durch die folgenden Eigenschaften steuerbar ist:

  • ObjectText — ein optionales Name für das Objekt, mit dem interagiert wird.
  • ActionText — Ein optionales Aktionsname wird dem Benutzer angezeigt.
  • TastaturTastenCode — Die Tastaturtaste, die die Anfrage auslöst.
  • GamepadKeyCode — Der Gamepad-Button, der die Anfrage auslöst.

Um das Aussehen der Gefängnis-Türanfrage anzupassen, machen Sie die folgenden Änderungen:

  1. In dem Eigenschaften-Fenster suchen Sie die ObjektText-Eigenschaft und geben Sie Tür ein.

  2. Für die ActionText Eigenschaften, geben Sie Pick Lock ein.

Aktivierungsreichweite

Anfragen erscheinen, wenn der Benutzer의 Charakter innerhalb der definierten MaxActivationDistance des übergeordnetes Teilbewegt sich.

Der Standardwert funktioniert in den meisten Fällen gut, aber Sie können die Benutzeroberfläche dem Benutzer näher bringen, indem Sie MaxActivationDistance auf 4 ändern.

Halte Dauer

Der HalteDuration -Werte bestimmt, wie schnell die Aktion des Popups ausgelöst wird, in Sekunden. Da diese Tür zum Freischalten aufgerufen werden muss, ändern Sie den HalteDuration -Wert auf 4 .

Eine Aktion implementieren

Der beste Weg, um Ereignisse zu erkennen, ist durch ProximityPromptService — dies ermöglicht es Sie, Ereignisse zentral zu erkennen, ohne ein Skript an jedes Ereignis-Objekt anzuhängen.

Ein grundlegendes Framework sieht wie folgt aus:


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)
EreignisBeschreibung
PromptTriggeredFeuert, wenn ein Benutzer mit einem Anregen interagiert ( nach der Dauer für einen Anregen mit nicht null HoldDuration ).
PromptButtonHoldBeganFeuert, wenn ein Benutzer mit einer Anfrage von nicht null anfängt zu interagieren HoldDuration .
PromptButtonHoldEndedFeuert, wenn ein Benutzer auf eine Anfrage von non-Zero reagiert HoldDuration

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

In dem Skript, das. PL: die Skripts, die Ereignisse oben einfach Funktionen innerhalb der ObjectActions ModuleScript aufrufen, die auch in ServerScriptService befindlich ist.


local ProximityPromptService = game:GetService("ProximityPromptService")
local ServerScriptService = game:GetService("ServerScriptService")
local ObjectActions = require(ServerScriptService.ObjectActions)
-- Erkennen, wenn die Anfrage gezeigt wird
local function onPromptTriggered(promptObject, player)
ObjectActions.promptTriggeredActions(promptObject, player)
end
-- Erkennen, wenn die Anfrage gehalten wird
local function onPromptHoldBegan(promptObject, player)
ObjectActions.promptHoldBeganActions(promptObject, player)
end
-- Erkennen, wenn die Anfrage gehalten wird
local function onPromptHoldEnded(promptObject, player)
ObjectActions.promptHoldEndedActions(promptObject, player)
end
-- Verbinde Benutzeroereignisse mit Verarbeitungsfunktionen
ProximityPromptService.PromptTriggered:Connect(onPromptTriggered)
ProximityPromptService.PromptButtonHoldBegan:Connect(onPromptHoldBegan)
ProximityPromptService.PromptButtonHoldEnded:Connect(onPromptHoldEnded)

Proximity-Eingaben sind eine praktische und anpassbare Lösung für die Interaktion mit Objekten im Spiel. Schauen Sie sich die ProximityPrompt und ProximityPromptService-Referenzseiten an, um weitere Möglichkeiten zur Steuerung des Verhaltens von Anfragen und die Erkundung anderer interaktiver Objekte in Dungeon Delve für kreative Inspirationen zu erkunden.