DragDetector
*Questo contenuto è tradotto usando AI (Beta) e potrebbe contenere errori. Per visualizzare questa pagina in inglese, clicca qui.
L'istanza DragDetector facilita e incoraggia l'interazione con gli oggetti 3D in un'esperienza, come aprire porte e armadietti, scorrendo una parte intorno e molto altro. Le caratteristiche chiave includono:
Posiziona un DragDetector sotto qualsiasi BasePart o Model per renderlo trascinabile tramite tutti gli input (Topo, or mouse as computer mouse, Touch, gamepade VR), tutto senza una sola riga di codice.
Scegli da più opzioni DragStyle , definisci come l'oggetto risponde alla velocità di movimento tramite ResponseStyle e opzionalmente applica limiti di assi o di movimento.
Gli script possono rispondere alla manipolazione di oggetti trascinati per guidare l'interfaccia utente o prendere decisioni logiche, come regolare il livello della luce in una stanza in base a un dimmer di interruttore di parete scorrevole.
I giocatori possono manipolare parti o modelli ancorati e rimarranno esattamente dove li hai messi quando sei rilasciato.
Class.DragDetector|DragDetectors lavora in Studio finché non sei non usando il seleziona , 0> muovi0> , 3> scala3> , o DragDetectors6> strumenti, rendendo più facile testare e regolare gli oggetti trascinabili mentre modifichi.
Vedi la guida 3D Drag Detectors per dettagli e esempi di utilizzo.
Sommario
Proprietà
Imposta l'icona del cursore per visualizzare quando il mouse è attivato sul padre di questo DragDetector .
Se la forza di restrizione è applicata al centro di massa dell'oggetto.
L'asse principale della moto, espresso in relazione al quadro di riferimento.
Il CFrame della pivot, dipendente dal rilevatore di trascinamento del drago, ReferenceInstance .
Il paradigma utilizzato per generare la proposta di movimento.
Se il DragDetector risponde all'input dell'utente.
Durante l'input del gamepad, il modificatore Enum.KeyCode per la modalità di movimento secondaria.
Durante l'input della tastiera, il modificatore Enum.KeyCode per la modalità di movimento secondaria.
Insieme a MinDragAngle , impedisce gli tentativi del rilevatore di mosse per generare una moto.
Insieme a MinDragTranslation , impedisce gli tentativi del detector di trascinamento di generare la velocità.
Forza massima applicata per l'oggetto per raggiungere il suo obiettivo.
Torque massimo applicato per l'oggetto per raggiungere il suo obiettivo.
Insieme a MaxDragAngle , impedisce gli tentativi del detector di trascinamento di generare la velocità.
Insieme a MaxDragTranslation , impedisce gli tentativi del detector di trascinamento di generare la velocità.
Specifica la rotazione YXZ dei trascinatori di movimento rispetto alla referenzaFrame.
Controlla il livello di autorizzazione per il quale i giocatori possono interagire con il DragDetector .
Un'istanza il cui CFrame è il frame di riferimento per il rilevatore di trascinamento.
Il paradigma usato per Sposta, o non Sposta, gli oggetti colpiti dal rilevatore di trascinamento.
I valori più alti fanno in modo che l'oggetto raggiunga il suo obiettivo più rapidamente.
Se l'input dell'utente su una replica DragDetector del server viene replicato al server o rimane locale al client specifico.
L'asse secondario della moto.
Se DragStyle è Enum.DragDetectorDragStyle.RotateTrackball , il moltiplicatore per l'aggiunta di una rotazione di trascinamento radiale come contributo al totale.
Se DragStyle è Enum.DragDetectorDragStyle.RotateTrackball , il moltiplicatore per l'aggiunta della rotazione della rubrica al totale.
Durante l'input VR, il modificatore Enum.KeyCode per la modalità di movimento secondaria.
Il Axis espresso nello Spaziodel mondo.
Il SecondaryAxis espresso nello Spaziodel mondo.
Imposta l'icona del cursore per visualizzare quando il mouse è passato su questo ClickDetector o DragDetector .
Distanza massima tra un personaggio e il ClickDetector o DragDetector per il giocatore in modo da poter interagire con esso.
Metodi
Aggiunge una funzione per modificare o limitare la proposta di movimento.
Restituisce il riferimento CFrame in cui è espresso il movimento.
Può essere invocato da uno script per riavviare il trascinamento utilizzando nuovi parametri.
Passa una funzione da utilizzare se e solo se DragStyle è impostato su Enum.DragDetectorDragStyle.Scriptable .
Passa una funzione da utilizzare se e solo se PermissionPolicy è impostato su Enum.DragDetectorPermissionPolicy.Scriptable .
Eventi
- DragContinue(playerWhoDragged : Player,cursorRay : Ray,viewFrame : CFrame,vrInputFrame : OptionalCoordinateFrame,isModeSwitchKeyDown : bool):RBXScriptSignal
Si attiva quando un utente continua a trascinare l'oggetto dopo che DragStart è stato inizializzato.
Si attiva quando un utente smette di trascinare l'oggetto.
Si attiva quando un utente inizia a trascinare l'oggetto.
Si attiva quando un giocatore interagisce con il padre di un ClickDetector o DragDetector .
Si attiva quando il padre di un ClickDetector o DragDetector è sopra il Giocatore.
Si attiva quando il cursore di un Giocatoresi allontana dal padre di un ClickDetector o DragDetector .
Si attiva quando un giocatore fa clic con il pulsante destro del mouse su un ClickDetector o DragDetector .
Proprietà
ActivatedCursorIcon
Imposta l'icona del cursore per visualizzare quando il mouse è attivato sul padre di questa DragDetector . Se questa proprietà è vuota, il detector userà l'Iconapredefinita.
Per cambiare l'Iconadel cursore attivata, imposta questa proprietà sull'ID risorsa dell'immagine che desideri utilizzare.
ApplyAtCenterOfMass
Quando falso (predefinito), la forza di vincolo viene applicata al punto in cui l'utente fa clic. Quando vero, la forza viene applicata al centro di massa dell'oggetto. Solo rilevante se ResponseStyle è Enum.DragDetectorResponseStyle.Physical e l'oggetto padre non è ancorato.
Axis
L'asse principale della moto, espresso in relazione al riferimentoFrame. Per un DragStyle di Enum.DragDetectorDragStyle.TranslateLine , la direzione di traduzione; per un
DragFrame
Se ReferenceInstance è Impostare, il CFrame del pivot rispetto alla referenza; altrimenti, il CFrame del pivot rispetto alla sua riferita alla sua riferita alla sua riferita alla sua riferita alla sua riferita alla sua riferita alla sua riferita alla sua riferita alla sua riferita alla sua riferita alla sua riferita alla sua riferita alla sua riferita alla sua riferita alla
DragStyle
Il paradigma usato per generare la proposta di movimento, dato un flusso di cursori. Vedi Enum.DragDetectorDragStyle per le opzioni.
GamepadModeSwitchKeyCode
Durante l'input del gamepad, il Enum.KeyCode per attivare la modalità di movimento secondaria. Si applica solo se il rilevatore di trascinamento DragStyle ha entrambe le modalità di movimento primarie e secondarie.
KeyboardModeSwitchKeyCode
Durante l'input della tastiera, il Enum.KeyCode per attivare la modalità di movimento secondaria. Si applica solo se il rilevatore di trascinamento ha entrambi i modi di movimento primari e secondari.
MaxDragAngle
Se questo è più grande di MinDragAngle , la traduzione sarà appiattita all'interno di tale raggio.
Questa non è una Vincolo; impedisce semplicemente le attività del rilevatore di movimento per rimanere entro i limiti. Vedi AddConstraintFunction() per aggiungere una limitazione personalizzata a un trascinamento.
Rilevante solo se DragStyle è Enum.DragDetectorDragStyle.RotateAxis .
MaxDragTranslation
In qualsiasi dimensione, se questo è maggiore di MinDragTranslation , la traduzione verrà appena entro quel raggio.
Questa non è una Vincolo; impedisce semplicemente le attività del rilevatore di movimento per rimanere entro i limiti. Vedi AddConstraintFunction() per aggiungere una limitazione personalizzata a un trascinamento.
MaxForce
Forza massima applicata per l'oggetto per raggiungere il suo obiettivo. Rilevante solo se ResponseStyle è Enum.DragDetectorResponseStyle.Physical e l'oggetto padre non è ancorato.
MaxTorque
Coppa di potenza massima applicata per l'oggetto per raggiungere il suo obiettivo. Rilevante solo se ResponseStyle è Enum.DragDetectorResponseStyle.Physical e l'oggetto padre non è ancorato.
MinDragAngle
Se questo è inferiore a MaxDragAngle , la traduzione sarà appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena
Questa non è una Vincolo; impedisce semplicemente le attività del rilevatore di movimento per rimanere entro i limiti. Vedi AddConstraintFunction() per aggiungere una limitazione personalizzata a un trascinamento.
Rilevante solo se DragStyle è Enum.DragDetectorDragStyle.RotateAxis .
MinDragTranslation
In qualsiasi dimensione, se questo è inferiore a MaxDragTranslation , la traduzione sarà appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena appena app
Questa non è una Vincolo; impedisce semplicemente le attività del rilevatore di movimento per rimanere entro i limiti. Vedi AddConstraintFunction() per aggiungere una limitazione personalizzata a un trascinamento.
Orientation
Specifica la rotazione YXZ dei trascinatori di movimento rispetto alla referenza (non cambia l'orientamento della referenza stessa). La traduzione lineare e la rotazione axiale saranno su questo asse Y e la traduzione planare in X piano. La modifica di questo valore aggiorna automaticamente 1> Class.DragDetector.Axis|Axis1> e viceversa.
PermissionPolicy
Controlla il livello di autorizzazione per cui i giocatori possono interagire con il DragDetector . Il valore predefinito è Enum.DragDetectorPermissionPolicy.Everybody .
ReferenceInstance
Un'istanza il cui CFrame è il frame di riferimento per il rilevatore di trascinamento. Il DragFrame viene espresso rispetto a questo CFrame che può essere recuperato tramite il metodo 1> Class.DragDetector:GetReferenceFrame()|GetReferenceFrame()1>.
Se questa istanza è un PVInstance , la riferimento frame sarà il suo pivot; se un Attachment , allora il suo mondo CFrame . Se è 2>nil2> o non uno dei primi, la riferimento frame sarà basata sul pivot del suo detector diagon
ResponseStyle
Una volta che la proposta di moto è stata calcolata e potenzialmente limitata, questo è il paradigma usato per Sposta, o non Sposta, gli oggetti interessati dal DragDetector . Vedi Enum.DragDetectorResponseStyle per le opzioni.
Responsiveness
I valori più elevati fanno in modo che l'oggetto raggiunga il suo obiettivo più rapidamente. Rilevante solo se ResponseStyle è Enum.DragDetectorResponseStyle.Physical e l'oggetto padre non è ancorato.
RunLocally
Se falso (predefinito), il client invia segnali replicati ( DragStart , DragContinue , DragEnd ) al server che elabora i segnali del cursore, apporta modifiche al modello di dati e le replica sui client.
Se vero, il client processa questi segnali da solo e non li replica sul Server. Client LocalScripts può essere utilizzato per rispondere a questi eventi e RemoteEvents può essere utilizzato per inviare qualsiasi cambiamento risultante che dovrebbe essere replicato sul Server.
SecondaryAxis
L'asse secondario della moto. Si riferisce all'orientamento utilizzando lo stesso paradigma di Attachments .
TrackballRadialPullFactor
Quando il cursor è fuori dalla trackball, il DragDetector può applicare una rotazione di spinta radial che trasforma la palla come se stesse cercando di rullare verso la trackball. Questa proprietà è un moltiplicatore di 0 a 1 per aggiungere quella rotazione come contribuzione al totale. Rilevante solo se Class.DragDetector.DragStyle|DragStyle</
TrackballRollFactor
Quando il cursor è fuori dalla trackball, il DragDetector può applicare una rotazione di rotolamento che trasforma la palla come se fosse montata su un vinile record facendo affluire il viewer. Questa proprietà è un moltiplicatore di 0 a 1 per aggiungere quella rotazione di rotolamento al totale. Rilevante solo se Class.DragDetector.DragStyle|Drag
VRSwitchKeyCode
Durante l'input VR, il Enum.KeyCode per attivare la modalità di movimento secondaria. Si applica solo se il rilevatore di trascinamento ha entrambi i modi di movimento primari e secondari.
WorldAxis
Il Axis espresso nello Spaziodel mondo. Si riferisce all'orientamento usando lo stesso paradigma di Attachments .
WorldSecondaryAxis
Il SecondaryAxis espresso nello Spaziodel mondo. Si riferisce all'orientamento usando lo stesso paradigma di Attachments .
Metodi
AddConstraintFunction
Aggiunge una funzione per modificare o limitare la proposta di movimento. La funzione prende un input CFrame di proposta di movimento e restituisce un CFrame di 1> modificato1> o non modificato. Entrambi l'input e l'output sono espressi ris
Per rimuovere una funzione di vincolo aggiunto, chiama Disconnect() sull'oggetto di connessione restituito.
Parametri
L'ordine della priorità per le funzioni aggiunte tramite questo metodo. Valori più alti hanno la precedenza sui valori più bassi.
Restituzioni
Usa questo oggetto di connessione per rimuovere la funzione di restrizione.
GetReferenceFrame
Restituisce il riferimento CFrame in cui è espresso il movimento; vedi la proprietà ReferenceInstance per più dettagli.
Restituzioni
RestartDrag
Può essere invocato da uno script per riavviare il trascinamento utilizzando nuovi parametri, se i parametri come DragStyle , Axis o SecondaryAxis cambiano.
Restituzioni
SetDragStyleFunction
Passa una funzione da utilizzare se e solo se DragStyle è impostato su Enum.DragDetectorDragStyle.Scriptable . La funzione data viene chiamata quando si risponde a un segnale
Se la funzione restituisce nil , l'oggetto non verrà spostato. Questo è utile se lo script non ha ancora raccolto tutte le informazioni di cui ha bisogno per fornire la risposta corretta, o in casi temporanei in cui vuoi che l'oggetto rimanga dove è.
Parametri
Funzione per il monitoraggio DragContinue segnali. Questa funzione riceve il raggio di pixelizzazione del mondo e restituisce un CFrame contenente la posizione e l'orientamento desiderati nello Spaziodel mondo. Se questa funzione restituisce nil, l'oggetto non verrà spostato.
Restituzioni
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)
Parametri
Restituzioni
Eventi
DragContinue
Si attiva quando un utente continua a trascinare l'oggetto dopo che DragStart è stato inizializzato.
Parametri
Se si utilizza un Dispositivodi input VR, il CFrame della mano che tiene il cursor/pointer/controllore.
DragEnd
Si attiva quando un utente smette di trascinare l'oggetto.
Parametri
DragStart
Si attiva quando un utente inizia a trascinare l'oggetto.
Parametri
Il frame di colpo del raggio del cursore che ha iniziato il trascinamento.
La parte che è stata colpita dal raycast del cursor che ha iniziato il trascinamento.
Se si utilizza un Dispositivodi input VR, il CFrame della mano che tiene il cursor/pointer/controllore.