DragDetector
*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
Setzt das Cursor-Symbol an, wenn die Maus über dem Elternteil dieses DragDetector angewendet wird.
Ob die Einschränkungskraft auf den Zentrum des Objekts angewendet wird.
Die Hauptachse der Bewegung, ausgedrückt in Bezug auf den Verweisungsrahmen.
Das CFrame des Pivot, abhängig von der Ziehpunkte-ReferenceInstance .
Das Paradigma, das für die Generierung des vorgeschlagenen Bewegung verwendet wird.
Ob der DragDetector auf Benutzer-Eingaben reagiert.
Während der Gamepad-Eingabe, der Modifikator Enum.KeyCode für den zweiten Bewegungsmodus.
Bei der Tastatur eingabe, der modifier Enum.KeyCode für den zweiten Bewegungsmodus.
Zusammen mit MinDragAngle , behindert die Versuche des Ziehpunkts, Bewegung zu erzeugen.
Zusammen mit MinDragTranslation , behindert die Versuche des Ziehpunkts, um Bewegung zu erzeugen.
Maximale Kraft wird für das Objekt angewendet, um sein Ziel zu erreichen.
Maximaler Drehmoment für das Objekt, um sein Ziel zu erreichen.
Zusammen mit MaxDragAngle , behindert die Versuche des Ziehpunkts, um Bewegung zu erzeugen.
Zusammen mit MaxDragTranslation , behindert die Versuche des Ziehpunkts, um Bewegung zu erzeugen.
Gibt die YXZ Rotation von Achsen der Bewegung in Bezug auf den Referenzrahmen an.
Steuert die Berechtigungsstufe, mit der Spieler mit dem DragDetector interagieren können.
Eine Instanz, deren CFrame der Referenzrahmen für den Drag-Detektor ist.
Das Paradigma, mit dem Objekte, die vom Ziehpunktsensor betroffen sind, Verschiebungswerkzeugwerden oder nicht Verschiebungswerkzeugwerden.
Höhere Werte ermöglichen es dem Objekt, sein Ziel schneller zu erreichen.
Ob die Eingabe des Benutzers auf einer DragDetector-Replikation auf den Server oder lokal bleibt, um den bestimmten Client.
Die zweite Achse der Bewegung.
Wenn DragStyle ist Enum.DragDetectorDragStyle.RotateTrackball , Multiplikator für das Hinzufügen eines radialen Zugrads als Beitrag zum Gesamtbetrag.
Wenn DragStyle ist, ist der Multiplikator für die Addition von RollRotation zum Gesamtbetrag.
Während der VR-Eingabe, der Modifikator Enum.KeyCode für den zweiten Bewegungsmodus.
Der Axis Ausdruck in der Platz.
Die SecondaryAxis im Platzausgedrückt.
Setzt das Cursor-Symbol an, wenn die Maus über das親 dieses ClickDetector oder DragDetector bewegt wird.
Maximale Entfernung zwischen einem Charakter und dem ClickDetector oder DragDetector für den Spieler, um mit ihm interagieren zu können.
Methoden
Fügt eine Funktion hinzu, um den vorgeschlagenen Bewegung zu modifizieren oder einzuschränken.
Kehrt die Referenz CFrame in der die Bewegung ausgedrückt wird.
Kann von einem Skript aus verwendet werden, um den Zug mit neuen Parametern neu zu starten.
Übergeben eine Funktion, die verwendet wird, wenn und nur wenn DragStyle auf Enum.DragDetectorDragStyle.Scriptable festgelegt ist.
Überträgt eine Funktion, die verwendet wird, wenn und nur wenn PermissionPolicy auf Enum.DragDetectorPermissionPolicy.Scriptable festgelegt ist.
Ereignisse
- DragContinue(playerWhoDragged : Player,cursorRay : Ray,viewFrame : CFrame,vrInputFrame : OptionalCoordinateFrame,isModeSwitchKeyDown : bool):RBXScriptSignal
Feuert, wenn ein Benutzer das Objekt weiter zieht, nachdem Class.DragDetector.DragStart|DragStart initiiert wurde.
Feuert, wenn ein Benutzer das Objekt aufhört zu ziehen.
Feuert, wenn ein Benutzer das Objekt anfängt, es zu ziehen.
Feuert, wenn ein Spieler mit dem Elternteil eines ClickDetector oder DragDetector interagiert.
Feuert, wenn der Elternteil eines ClickDetector oder DragDetector von einem Spieler:inüber dem Kopf gehalten wird.
Feuert, wenn der Cursor eines Spieler:inüber dem Elternteil eines ClickDetector oder DragDetector schwebt.
Feuert ab, wenn ein Spieler mit der rechten Maustaste auf einem ClickDetector oder DragDetector feuert.
Eigenschaften
ActivatedCursorIcon
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
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.
Axis
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
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.
DragStyle
Das Paradigma, das verwendet wird, um vorgeschlagene Bewegungen zu generieren, basiert auf einem Strahl von Cursor-Strahlen. Siehe Enum.DragDetectorDragStyle für Optionen.
Enabled
Wenn DragDetector wahr ist, reagiert es auf Benutzer-Eingaben; wenn Class.DragDetector falsch ist, reagiert es nicht.
GamepadModeSwitchKeyCode
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
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
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
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
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
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
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
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
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.
PermissionPolicy
Steuert die Berechtigungsebene, mit der Spieler mit dem DragDetector interagieren können. Standard ist Enum.DragDetectorPermissionPolicy.Everybody .
ReferenceInstance
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>
ResponseStyle
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
Höhere Werte führen das Objekt schneller an sein Ziel. Nur relevant, wenn ResponseStyle ist, und das übergeordnete Objekt ist nicht verankert.
RunLocally
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
Die zweite Achse der Bewegung. Bezieht sich auf die Orientierung mit dem selben Paradigma wie Attachments .
TrackballRadialPullFactor
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
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
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
Die Axis im Platzausgedrückt. Bezieht sich auf die Orientierung mit dem selben Paradigma wie Attachments.
WorldSecondaryAxis
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
Die Reihenfolge der Priorität für Funktionen, die über diesen Methoden hinzugefügt wurden. Höhere Werte haben die Vorrang vor niedrigeren Werten.
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
RestartDrag
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
SetDragStyleFunction
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
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
SetPermissionPolicyFunction
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
Rückgaben
Ereignisse
DragContinue
Feuert, wenn ein Benutzer das Objekt weiter zieht, nachdem Class.DragDetector.DragStart|DragStart initiiert wurde.
Parameter
Wenn Sie ein Gerätverwenden, die CFrame der Hand, die den Cursor/ Pointer / Controller hält.
DragEnd
Feuert, wenn ein Benutzer das Objekt aufhört zu ziehen.
Parameter
DragStart
Feuert, wenn ein Benutzer das Objekt anfängt, es zu ziehen.
Parameter
Der Trefferrahmen des Cursor-Rayscast, der den Zug ausgelöst hat.
Der Teil, der vom Cursor-Raycast getroffen wurde, der den Zug startete.
Wenn Sie ein Gerätverwenden, die CFrame der Hand, die den Cursor/ Pointer / Controller hält.