DragDetector

Veraltete anzeigen

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

Die DragDetector Instanz erleichtert und ermutigt die Interaktion mit 3D-Objekten in einem Erlebnis, wie das Öffnen von Türen und Schubladen, das Schieben eines Teils um und vieles mehr. Key-Funktionen beinhalten:

  • Platieren Sie einen DragDetector unter einem BasePart oder Model , um ihn über alle Eingänge (Maus, Touch, Gamepad und VR) ziehen zu können, all dies ohne eine einzige Zeile Codes.

  • Wählen Sie aus mehreren Optionen DragStyle, definieren Sie, wie das Objekt auf Bewegung reagiert, via ResponseStyle und optionale Anwendung von Achsen oder Bewegungslimits.

  • Skripte können auf die Manipulation von ziehbaren Objekten reagieren, um die Benutzeroberfläche zu steuern oder logische Entscheidungen zu treffen, z. B. das Anpassen des Lichtniveaus in einem Raum basierend auf einem Ziehhandschalter-Dimmer.

  • Spieler können verankerte Teile oder Modelle manipulieren, und sie bleiben genau dort, wo du sie beim Freigeben platziert hast.

  • Class.DragDetector|DragDetectors arbeiten in Studio, solange Sie nicht mit dem Auswählen , Bewegen , 0> Skalieren 0> oder DragDetectors3>-Werkzeugen testen und anpassen, um das Testen und Anpassen von Ziehbaren Objekten zu erleichtern.

Siehe die 3D-Zieh-Entferner-Anleitung für Details und Beispielanwendungen.

Zusammenfassung

Eigenschaften

Eigenschaften von ClickDetector übernommen

Methoden

Ereignisse

Ereignisse von ClickDetector übernommen

Eigenschaften

ActivatedCursorIcon

ContentId
Parallel lesen

Setzt das Kürzel-Symbol an, wenn die Maus über dem Elternteil dieses DragDetector aktiviert ist. Wenn diese Eigenschaft leer bleibt, verwendet der Detektor das Standard-Icon.

Um das aktivierte Kopf-Symbol zu ändern, setzen Sie diese Eigenschaft auf die Asset-ID des Bildes, das Sie verwenden möchten.

ApplyAtCenterOfMass

Parallel lesen

Wenn falsch (Standard), wird die Einschränkungskraft angewendet, wenn der Benutzer auf die Stelle klickt, auf die sie zugreifen möchten. Wenn es wahr ist, wird die Einschränkungskraft angewendet, wenn der Benutzer auf das Zentrum der Masse des Objekts klickt. Nur relevant, wenn ResponseStyle ist, und das übergeordnete Objekt ist nicht verankert.

Nicht repliziert
Parallel lesen

Die primäre Achse der Bewegung, ausgedrückt in Bezug auf den Verweisungsrahmen. Für ein DragStyle von Enum.DragDetectorDragStyle.TranslateLine , die Richtung der

DragFrame

Parallel lesen

Wenn ReferenceInstance festlegenist, ist der CFrame der Pivot-Relative zu der Verweisungs-Rahmen; andernfalls ist der CFrame der Pivot-Relative zu seiner Rahmen am Anfang des Drag.

Parallel lesen

Das Paradigma, das verwendet wird, um vorgeschlagene Bewegungen zu generieren, basiert auf einem Strahl von Cursor-Strahlen. Siehe Enum.DragDetectorDragStyle für Optionen.

Enabled

Parallel lesen

Wenn DragDetector wahr ist, reagiert es auf Benutzer-Eingaben; wenn Class.DragDetector falsch ist, reagiert es nicht.

GamepadModeSwitchKeyCode

Parallel lesen

Während der Gamepad-Eingabe, der Enum.KeyCode für die Umschaltung des Sekundärmodus-Bewegung. Gilt nur, wenn der Drag-Detektor- DragStyle sowohl den Primär- als auch den Sekundärmodus-Bewegung hat.

KeyboardModeSwitchKeyCode

Parallel lesen

Während der Tastatur-Eingabe, der Enum.KeyCode für die Umschaltung des Sekundärmodus-Bewegung. Gilt nur, wenn der Ziehpunkte-Detektor DragStyle sowohl den Primär- als auch den Sekundärmodus-Bewegung hat.

MaxDragAngle

Parallel lesen

Wenn dies größer ist als MinDragAngle , wird die Übersetzung innerhalb dieses Bereichs geklemmt.

Dies ist keine Beschränkung; es behindert einfach die Versuche des Ziehpunkts, Bewegung zu generieren, um innerhalb von Grenzen zu bleiben. Siehe AddConstraintFunction(), um dem Ziehpunkt einen benutzerdefinierten Grenze hinzuzufügen.

Nur relevant, wenn DragStyle ist Enum.DragDetectorDragStyle.RotateAxis .

MaxDragTranslation

Parallel lesen

In jeder Dimension, wenn dies größer ist als MinDragTranslation , wird die Übersetzung innerhalb dieses Bereichs geklemmt.

Dies ist keine Beschränkung; es behindert einfach die Versuche des Ziehpunkts, Bewegung zu generieren, um innerhalb von Grenzen zu bleiben. Siehe AddConstraintFunction(), um dem Ziehpunkt einen benutzerdefinierten Grenze hinzuzufügen.

MaxForce

Parallel lesen

Maximale Kraft für das Objekt angewendet, um sein Ziel zu erreichen. Nur relevant, wenn ResponseStyle ist Enum.DragDetectorResponseStyle.Physical und das übergeordnete Objekt ist nicht verankert.

MaxTorque

Parallel lesen

Maximaler Drehmoment für das Objekt, um seine Zielvorgabe zu erreichen. Nur relevant, wenn ResponseStyle ist Enum.DragDetectorResponseStyle.Physical und das übergeordnete Objekt ist nicht verankert.

MinDragAngle

Parallel lesen

Wenn dies weniger als MaxDragAngle ist, wird die Übersetzung innerhalb dieses Bereichs geklemmt.

Dies ist keine Beschränkung; es behindert einfach die Versuche des Ziehpunkts, Bewegung zu generieren, um innerhalb von Grenzen zu bleiben. Siehe AddConstraintFunction(), um dem Ziehpunkt einen benutzerdefinierten Grenze hinzuzufügen.

Nur relevant, wenn DragStyle ist Enum.DragDetectorDragStyle.RotateAxis .

MinDragTranslation

Parallel lesen

In jeder Dimension, wenn dies weniger als MaxDragTranslation ist, wird die Übersetzung innerhalb dieses Bereichs geklemmt.

Dies ist keine Beschränkung; es behindert einfach die Versuche des Ziehpunkts, Bewegung zu generieren, um innerhalb von Grenzen zu bleiben. Siehe AddConstraintFunction(), um dem Ziehpunkt einen benutzerdefinierten Grenze hinzuzufügen.

Orientation

Parallel lesen

Gibt die YXZ Rotation der Achsen der Bewegung in Bezug auf den Referenzrahmen (ändert nicht die Ausrichtung des Referenzrahmens selbst). Die lineare Translation und die Achsenverschiebung werden auf dieser Y -Achse sein, und die Planar-Translation in der X -Ebene. Ändern dieser Werte aktualisiert automatisch 1> Class.DragDetector.

Parallel lesen

Steuert die Berechtigungsebene, mit der Spieler mit dem DragDetector interagieren können. Standard ist Enum.DragDetectorPermissionPolicy.Everybody .

ReferenceInstance

Parallel lesen

Eine Instanz, deren CFrame der Referenzrahmen für den Drag-Detektor ist. Der DragFrame wird bezogen auf diesen CFrame ausgedrückt, der über den 1> Class.DragDetector:GetReferenceFrame()|GetReferenceFrame()1>-Methode abgerufen werden kann.

Wenn diese Instanz ein PVInstance ist, wird der Referenzrahmen sein Pivot sein; wenn ein Attachment , dann basiert seine Welt auf dem Pivot des Drag-DetektorsParent CFrame oder 1> Class.Model1>. Wenn es 4>

Parallel lesen

Sobald der vorgeschlagene Bewegung berechnet und möglicherweise eingeschränkt ist, ist dies das Paradigma, das verwendet wird, um die Objekte, die von dem DragDetector betroffen sind, zu Verschiebungswerkzeug, oder nicht zu Verschiebungswerkzeug. Siehe Enum.DragDetectorResponseStyle für Optionen.

Responsiveness

Parallel lesen

Höhere Werte führen das Objekt schneller an sein Ziel. Nur relevant, wenn ResponseStyle ist, und das übergeordnete Objekt ist nicht verankert.

RunLocally

Parallel lesen

Wenn falsch (Standard), sendet der Client replizierte Signale ( DragStart , DragContinue , DragEnd ) an den Server, der Verursacher-Strahlen verarbeitet und Änderungen am Modellvornehmen und sie auf Clients repliziert.

Wenn wahr, verarbeitet der Client diese Signale selbst und repliziert sie nicht auf den Server. Client LocalScripts kann verwendet werden, um auf diese Ereignisse zu reagieren, und RemoteEvents kann verwendet werden, um alle resultierenden Änderungen zu senden, die auf den Server repliziert werden sollen.

SecondaryAxis

Nicht repliziert
Parallel lesen

Die zweite Achse der Bewegung. Bezieht sich auf die Orientierung mit dem selben Paradigma wie Attachments .

TrackballRadialPullFactor

Parallel lesen

Wenn der Cursor außerhalb der Schienenseite ist, kann der DragDetector eine radiale ZiehungsRotation anwenden, die den Ball so dreht, als ob er versucht, in Richtung der Schienenseite zu rollen. Diese Eigenschaft ist ein 0- bis 1-Multiplikator für das Hinzufügen dieser Rotation als Beitrag zum Gesamt. Nur relevant, wenn Class.DragDet

TrackballRollFactor

Parallel lesen

Wenn der Cursor außerhalb der Schienenseite befindet, kann der DragDetector eine RollRotation anwenden, die den Ball so dreht, als ob er auf einer Vinyl-Kassette mit dem Ansichtsfenster montiert ist. Diese Eigenschaft ist ein 0- bis 1-Multiplikator für das Hinzufügen dieser RollRotation zum Gesamt. Nur relevant, wenn Class.DragDetector.DragStyle|

VRSwitchKeyCode

Parallel lesen

Während der VR-Eingabe, der Enum.KeyCode für die Umschaltung des sekundären Bewegungsmodus aktiviert wird. Gilt nur, wenn der Ziehpunkte探测器's DragStyle sowohl den primären als auch den sekundären Bewegungsmodus hat.

WorldAxis

Nicht repliziert
Parallel lesen

Die Axis im Platzausgedrückt. Bezieht sich auf die Orientierung mit dem selben Paradigma wie Attachments.

WorldSecondaryAxis

Nicht repliziert
Parallel lesen

Der SecondaryAxis Ausdruck in der Platz. Bezieht sich auf die Orientierung mit dem selben Paradigma wie Attachments.

Methoden

AddConstraintFunction

Fügt eine Funktion hinzu, um den vorgeschlagenen Bewegung zu modifizieren oder einzuschränken. Die Funktion nimmt eine Eingabe CFrame von vorgeschlagener Bewegung und gibt eine CFrame von 1> modifizierter1>

Um eine hinzugefügte Einschränkung aufzuheben, rufe Disconnect() auf das zurückgegebene Objekt.

Parameter

priority: number

Die Reihenfolge der Priorität für Funktionen, die über diesen Methoden hinzugefügt wurden. Höhere Werte haben die Vorrang vor niedrigeren Werten.

function: function

Funktion zum Ändern oder Einengen des vorgeschlagenen Bewegung. Diese Funktion nimmt eine Eingabe CFrame von vorgeschlagenem Bewegung und gibt eine CFrame von 1> modifizierter1> oder unmodifizierter Bewegung zurück, beide relativ zum Referenzrahmen.


Rückgaben

Verwenden Sie dieses Verbindungsobjekt, um die Einschränkungsfunktion zu entfernen.

GetReferenceFrame

Gibt die Referenz CFrame zurück, in der die Bewegung ausgedrückt ist; siehe die Eigenschaft ReferenceInstance für mehr Details.


Rückgaben

Die Referenz CFrame in der die Bewegung ausgedrückt wird.

RestartDrag

void

Kann von einem Skript aus verwendet werden, um den Zug neu zu starten, indem neue Parameter verwendet werden, wenn Parameter wie DragStyle , Axis oder SecondaryAxis geändert werden.


Rückgaben

void

SetDragStyleFunction

void

Gibt eine Funktion zurück, die verwendet wird, wenn und nur wenn DragStyle auf 枚Class.DragDetectorDragContinue|DragContinue geantwortet wird, und die angegebene Funktion wird aufgerufen, wenn sie auf ein

Wenn die Funktion nil zurückgibt, wird das Objekt nicht bewegt. Dies ist nützlich, wenn das Skript noch keine alle Informationen gesammelt hat, die es braucht, um die richtige Antwort zu geben, oder in vorübergehenden Fällen, in denen Sie das Objekt so lassen möchten, wie es ist.

Parameter

function: function

Funktion zum Überwachen von DragContinue Signalen. Diese Funktion erhält den Weltbereich des Signalssenders und gibt einen CFrame zurück, der die gewünschte Position und Ausrichtung des Pivot im Platzenthält. Wenn diese Funktion nil zurückgibt, wird das Objekt nicht bewegt.


Rückgaben

void

SetPermissionPolicyFunction

void

local dragDetector = script.Parent.DragDetector
dragDetector.PermissionPolicy = Enum.DragDetectorPermissionPolicy.Scriptable
dragDetector:SetPermissionPolicyFunction(function(player, part)
if player and player:GetAttribute("IsInTurn") then
return true
elseif part and not part:GetAttribute("IsDraggable") then
return false
else
return true
end
end)

Parameter

function: function

Funktion für die Einstellung der Interaktivität des Detectors. Diese Funktion akzeptiert ein Player-Parameter für die Aktivierung/Deakt


Rückgaben

void

Ereignisse

DragContinue

Feuert, wenn ein Benutzer das Objekt weiter zieht, nachdem Class.DragDetector.DragStart|DragStart initiiert wurde.

Parameter

playerWhoDragged: Player

Der Player, der die Ziehung durch DragStart und jetzt die Ziehung fortsetzt.

cursorRay: Ray

Ray emaniert von der Maus, in Richtung Szene.

viewFrame: CFrame

CFrame von der Camera des Benutzers.

vrInputFrame: OptionalCoordinateFrame

Wenn Sie ein Gerätverwenden, die CFrame der Hand, die den Cursor/ Pointer / Controller hält.

isModeSwitchKeyDown: bool

Wenn der Drag-Detektor's DragStyle sowohl den primären als auch den sekundären Bewegungsmodus hat, zeigt dieses Paradigma an, ob der Benutzer den Modifier-Eingabeeingabedurch Class.DragDetector.KeyboardModeSwitchKeyCode|KeyboardModeSwitchKey


DragEnd

Feuert, wenn ein Benutzer das Objekt aufhört zu ziehen.

Parameter

playerWhoDragged: Player

Der Player, der den Drag durch DragStart initiiert hat und jetzt (veröffentlicht) den Drag beendet hat.


DragStart

Feuert, wenn ein Benutzer das Objekt anfängt, es zu ziehen.

Parameter

playerWhoDragged: Player

Player der den Drag initiiert hat.

cursorRay: Ray

Ray emaniert von der Maus, in Richtung Szene.

viewFrame: CFrame

CFrame von der Camera des Benutzers.

hitFrame: CFrame

Der Trefferrahmen des Cursor-Rayscast, der den Zug ausgelöst hat.

clickedPart: BasePart

Der Teil, der vom Cursor-Raycast getroffen wurde, der den Zug startete.

vrInputFrame: OptionalCoordinateFrame

Wenn Sie ein Gerätverwenden, die CFrame der Hand, die den Cursor/ Pointer / Controller hält.

isModeSwitchKeyDown: bool

Wenn der Drag-Detektor's DragStyle sowohl den primären als auch den sekundären Bewegungsmodus hat, zeigt dieses Paradigma an, ob der Benutzer den Modifier-Eingabeeingabedurch Class.DragDetector.KeyboardModeSwitchKeyCode|KeyboardModeSwitchKey