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 oggetti 3D in un'esperienza, come l'apertura di porte e cassetti, lo scivolamento di una parte intorno e molto altro ancora.Le caratteristiche principali includono:
Posiziona un DragDetector sotto qualsiasi BasePart o Model per renderlo trascorribile attraverso tutti gli input (Topo, or mouse as computer mouse, touch, gamepad e VR), tutti senza una singola linea di codice.
Scegli tra diverse opzioni DragStyle , definisci come l'oggetto risponde alla mossa attraverso ResponseStyle , e applica opzionalmente limiti di asse o movimento.
Gli script possono rispondere alla manipolazione di oggetti trascinati per guidare l'interfaccia utente o prendere decisioni logiche, come regolare il livello di luce in una stanza in base a un dimmer di parete scorrevole.
I giocatori possono manipolare parti o modelli ancorati e rimarranno esattamente dove li hai messi al rilascio.
DragDetectors lavorare in Studio finché non sei non utilizzando gli strumenti Seleziona , Sposta , Scala o Ruota , rendendo più facile testare e regolare gli oggetti trascorribili durante l'edizione.
Vedi la guida 3D Drag Detectors per dettagli e esempi di utilizzo.
Sommario
Proprietà
Imposta l'icona del cursore da mostrare quando il mouse è attivato sul genitore di questo DragDetector .
Se la forza di restrizione viene applicata al centro di massa dell'oggetto.
L'asse primario di movimento, espresso rispetto al frame di riferimento.
Il CFrame del punto pivote, dipendente dal rilevatore di trascinamento ReferenceInstance.
Il paradigma utilizzato per generare la proposta di moto.
Se il DragDetector risponde all'input dell'utente.
Durante l'input del gamepad, il modificatore Enum.KeyCode per la modalità secondaria di movimento.
Durante l'input della tastiera, il modificatore Enum.KeyCode per la modalità secondaria di movimento.
Insieme a MinDragAngle, impedisce ai tentativi del rilevatore di trascinamento di generare movimento.
Insieme a MinDragTranslation, impedisce ai tentativi del rilevatore di trascinamento di generare movimento.
Forza massima applicata all'oggetto per raggiungere il suo obiettivo.
Torque massimo applicato per l'oggetto per raggiungere il suo obiettivo.
Insieme a MaxDragAngle, impedisce ai tentativi del rilevatore di trascinamento di generare movimento.
Insieme a MaxDragTranslation, impedisce ai tentativi del rilevatore di trascinamento di generare movimento.
Specifica la rotazione YXZ delle assi di movimento relativi al quadro di riferimento.
Controlla il livello di autorizzazione con cui i giocatori possono interagire con il DragDetector .
Un'istanza il cui CFrame è il quadro di riferimento per il rilevatore di trascinamento.
Il paradigma utilizzato per Sposta, o non Sposta, gli oggetti interessati dal rilevatore di trascinamento.
I valori più alti fanno sì che l'oggetto raggiunga il suo obiettivo più rapidamente.
Se l'input dell'utente su un DragDetector replica al server o rimane locale al client specifico.
L'asse secondario della moto.
Se DragStyle è Enum.DragDetectorDragStyle.RotateTrackball , moltiplicatore per l'aggiunta di una rotazione di trazione radiale come contributo al totale.
Se DragStyle è Enum.DragDetectorDragStyle.RotateTrackball , moltiplicatore per l'aggiunta della rotazione del rullo al totale.
Durante l'input VR, il modificatore Enum.KeyCode per la modalità di movimento secondaria.
Il Axis espresso nello Spaziomondiale.
Il SecondaryAxis espresso nello Spaziomondiale.
Imposta l'icona del cursore da mostrare quando il mouse viene posizionato sul padre di questo ClickDetector o DragDetector .
Distanza massima tra un personaggio e il ClickDetector o DragDetector per il giocatore di poter interagire con esso.
Metodi
Aggiunge una funzione per modificare o limitare la proposta di moto.
Restituisce il riferimento CFrame in cui viene espressa la moto.
Può essere invocato da uno script per riavviare il trascinamento utilizzando nuovi parametri.
Passa una funzione da utilizzare se e solo se DragStyle è impostata su Enum.DragDetectorDragStyle.Scriptable.
Passa una funzione da utilizzare se e solo se PermissionPolicy è impostata su Enum.DragDetectorPermissionPolicy.Scriptable.
Eventi
- DragContinue(playerWhoDragged : Player,cursorRay : Ray,viewFrame : CFrame,vrInputFrame : OptionalCoordinateFrame,isModeSwitchKeyDown : boolean):RBXScriptSignal
Si accende 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 accende quando un giocatore interagisce con il genitore di un ClickDetector o DragDetector .
Si accende quando il genitore di un ClickDetector o DragDetector viene sovrapposto da un Giocatore.
Si accende quando il cursore di un Giocatoresi allontana dal padre di un ClickDetector o DragDetector .
Si accende quando un giocatore fa clic con il mouse destro sul cursore su un ClickDetector o DragDetector .
Proprietà
ActivatedCursorIcon
Imposta l'icona del cursore da mostrare quando il mouse è attivato sul genitore di questo DragDetector .Se questa proprietà è lasciata vuota, il rilevatore utilizzerà l'Iconapredefinita.
Per cambiare l'Iconadel cursore attivato, imposta questa proprietà sull'ID risorsa dell'immagine che vorresti utilizzare.
ApplyAtCenterOfMass
Quando è falso (predefinito), viene applicata la forza di restrizione al punto in cui l'utente fa clic.Quando è vero, la forza viene applicata al centro di massa dell'oggetto.Rilevante solo se ResponseStyle è Enum.DragDetectorResponseStyle.Physical e l'oggetto padre non è ancorato.
Axis
L'asse primario di movimento, espresso rispetto al frame di riferimento.Per un DragStyle di Enum.DragDetectorDragStyle.TranslateLine , la direzione di traduzione; per Enum.DragDetectorDragStyle.TranslatePlane , la normale al piano di moto; per Enum.DragDetectorDragStyle.RotateAxis , l'asse di rotazione 1D.Cambiare questo valore aggiorna automaticamente Orientation e viceversa.
DragFrame
Se ReferenceInstance è Impostare, il CFrame del punto di rotazione rispetto al frame di riferimento; altrimenti, il CFrame del punto di rotazione rispetto al suo frame all'inizio del trascinamento.
DragStyle
Il paradigma utilizzato per generare la proposta di moto, dato uno stream di raggi del cursore. Vedi Enum.DragDetectorDragStyle per le opzioni.
GamepadModeSwitchKeyCode
Durante l'input del gamepad, il Enum.KeyCode per attivare la modalità secondaria di movimento.Si applica solo se il rilevatore di trascinamento ha DragStyle entrambi i modi di movimento primari e secondari.
KeyboardModeSwitchKeyCode
Durante l'input della tastiera, il Enum.KeyCode per attivare la modalità secondaria di movimento.Si applica solo se il rilevatore di trascinamento ha DragStyle entrambi i modi di movimento primari e secondari.
MaxDragAngle
Se questo è maggiore di MinDragAngle, la traduzione verrà limitata all'interno di tale intervallo.
Questa non è una Vincolo; impedisce semplicemente ai tentativi del rilevatore di trascinamento di generare movimento per rimanere entro i limiti.Vedi AddConstraintFunction() per aggiungere una restrizione personalizzata a un trascinamento.
Rilevante solo se DragStyle è Enum.DragDetectorDragStyle.RotateAxis.
MaxDragTranslation
In qualsiasi dimensione, se questo è maggiore di MinDragTranslation , la traduzione verrà limitata all'interno di tale intervallo.
Questa non è una Vincolo; impedisce semplicemente ai tentativi del rilevatore di trascinamento di generare movimento per rimanere entro i limiti.Vedi AddConstraintFunction() per aggiungere una restrizione personalizzata a un trascinamento.
MaxForce
Forza massima applicata all'oggetto per raggiungere il suo obiettivo. Rilevante solo se ResponseStyle è Enum.DragDetectorResponseStyle.Physical e l'oggetto padre non è ancorato.
MaxTorque
Torque massimo applicato 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 verrà limitata all'interno di tale intervallo.
Questa non è una Vincolo; impedisce semplicemente ai tentativi del rilevatore di trascinamento di generare movimento per rimanere entro i limiti.Vedi AddConstraintFunction() per aggiungere una restrizione personalizzata a un trascinamento.
Rilevante solo se DragStyle è Enum.DragDetectorDragStyle.RotateAxis.
MinDragTranslation
In qualsiasi dimensione, se questo è inferiore a MaxDragTranslation, la traduzione verrà limitata all'interno di tale intervallo.
Questa non è una Vincolo; impedisce semplicemente ai tentativi del rilevatore di trascinamento di generare movimento per rimanere entro i limiti.Vedi AddConstraintFunction() per aggiungere una restrizione personalizzata a un trascinamento.
Orientation
Specifica la rotazione YXZ degli assi di movimento relativi al frame di riferimento (non cambia l'orientamento del frame di riferimento stesso).La traduzione lineare e la rotazione assiale saranno su questo asse riorientato Y , e la traduzione planare nell'asse XZ .Cambiare questo valore aggiorna automaticamente Axis e viceversa.
PermissionPolicy
Controlla il livello di autorizzazione per cui i giocatori possono interagire con il DragDetector . Il predefinito è Enum.DragDetectorPermissionPolicy.Everybody .
ReferenceInstance
Un'istanza il cui CFrame è il quadro di riferimento per il rilevatore di trascinamento.Il DragFrame è espresso rispetto a questo CFrame che può essere recuperato tramite il metodo GetReferenceFrame().
Se questa istanza è un PVInstance , il quadro di riferimento sarà il suo punto focale; se un Attachment , allora il suo mondo CFrame .Se è nil o nessuno dei precedenti, il quadro di riferimento sarà basato sul punto pivote del genitore del rilevatore di trascinamento BasePart o Model.
ResponseStyle
Una volta calcolata e potenzialmente limitata la proposta mozione, questo è il paradigma utilizzato per Sposta, o non Sposta, gli oggetti interessati dal DragDetector .Vedi Enum.DragDetectorResponseStyle per le opzioni.
Responsiveness
I valori più elevati fanno sì che l'oggetto raggiunga il suo obiettivo più rapidamente. Solo rilevante 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 cursori, apporta modifiche al modello di dati e li replica ai client.
Se vero, il client elabora tali segnali da solo e non li replica al Server.Client LocalScripts può essere utilizzato per rispondere a questi eventi e RemoteEvents può essere utilizzato per inviare eventuali modifiche conseguenti che dovrebbero essere replicate sul Server.
SecondaryAxis
L'asse secondario della moto. Si riferisce all'orientamento utilizzando lo stesso paradigma di Attachments .
TrackballRadialPullFactor
Quando il cursore è al di fuori del trackball, il DragDetector può applicare una rotazione di trazione radiale che fa girare la palla come se stesse cercando di rotolare verso il cursore.Questa proprietà è un moltiplicatore 0 a 1 per l'aggiunta di quella rotazione come contributo al totale.Rilevante solo se DragStyle è Enum.DragDetectorDragStyle.RotateTrackball.
TrackballRollFactor
Quando il cursore è al di fuori del trackball, il DragDetector può applicare una rotazione a rullo che gira la palla come se fosse montata su un vinile che si affaccia al visualizzatore.Questa proprietà è un moltiplicatore da 0 a 1 per l'aggiunta di quella rotazione del rullo al totale.Rilevante solo se DragStyle è Enum.DragDetectorDragStyle.RotateTrackball.
VRSwitchKeyCode
Durante l'input VR, il Enum.KeyCode per attivare la modalità secondaria di movimento.Si applica solo se il rilevatore di trascinamento ha DragStyle entrambi i modi di movimento primari e secondari.
WorldAxis
Il Axis espresso nello Spaziomondiale. Si riferisce all'orientamento utilizzando lo stesso paradigma di Attachments .
WorldSecondaryAxis
Il SecondaryAxis espresso nello Spaziomondiale. Si riferisce all'orientamento utilizzando lo stesso paradigma di Attachments .
Metodi
AddConstraintFunction
Aggiunge una funzione per modificare o limitare la proposta di moto.La funzione riceve un input CFrame di proposta moto e restituisce un CFrame di modificata o moto non modificata.Sia l'input che l'output sono espressi rispetto al frame di riferimento.Puoi aggiungere più funzioni che verranno chiamate in ordine da priority , passando i risultati attraverso una catena.
Per rimuovere una funzione di restrizione aggiunta, chiama Disconnect() sull'oggetto connessione restituito.
Parametri
L'ordine di priorità per le funzioni aggiunte tramite questo metodo. I 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 viene espressa la moto; vedi la proprietà ReferenceInstance per maggiori 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 è impostata su Enum.DragDetectorDragStyle.Scriptable.La funzione data viene chiamata quando risponde a un segnale DragContinue , riceve il cursore del mondo del segnale con il tipo Ray e restituisce un CFrame contenente la posizione e l'orientamento desiderati del punto di rotazione nello Spaziodel mondo.
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 dare la risposta corretta, o in casi temporanei in cui vuoi che l'oggetto rimanga dove è.
Parametri
Funzione per il monitoraggio di DragContinue.Questa funzione riceve il raggio del cursore mondiale del segnale e restituisce un CFrame contenente la posizione e l'orientamento desiderati del punto di rotazione nello spazio Spazio.Se questa funzione restituisce nil , l'oggetto non verrà spostato.
Restituzioni
SetPermissionPolicyFunction
Passa una funzione da utilizzare se e solo se PermissionPolicy è impostata su Enum.DragDetectorPermissionPolicy.Scriptable.La funzione data accetta un parametro Player per abilitare/disabilitare il rilevatore per un Giocatorespecifico.Riceve anche un parametro part che indica quale specifico BasePart è stato cliccato, come una parte all'interno di una parte trascinabile Model ; questo è utile per abilitare/disabilitare il rilevatore in base al valore Name , Color , HasTag() , o altri dettagli.
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
Funzione per impostare l'interattività del rilevatore.Questa funzione accetta un parametro Player per l'attivazione/disattivazione del rilevatore per un Giocatorespecifico.Riceve anche un parametro part che indica quale specifico BasePart è stato cliccato, come una parte all'interno di una parte trascinabile Model ; questo è utile per abilitare/disabilitare il rilevatore in base al valore Name , Color , HasTag() , o altri dettagli.
Restituzioni
Eventi
DragContinue
Si accende quando un utente continua a trascinare l'oggetto dopo che DragStart è stato inizializzato.
Parametri
Se si utilizza un Dispositivodi input VR, la CFrame della mano che tiene il cursore/puntatore/controllore.
Se il rilevatore di trascinamento ha DragStyle entrambi i modi di movimento primari e secondari, questo parametro indica se l'utente sta premendo l'input modificatore definito attraverso KeyboardModeSwitchKeyCode , GamepadModeSwitchKeyCode o VRSwitchKeyCode.
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 quadro colpito del raggio del cursore che ha iniziato il trascinamento.
La parte che è stata colpita dal raycast del cursore che ha iniziato il trascinamento.
Se si utilizza un Dispositivodi input VR, la CFrame della mano che tiene il cursore/puntatore/controllore.
Se il rilevatore di trascinamento ha DragStyle entrambi i modi di movimento primari e secondari, questo parametro indica se l'utente sta premendo l'input modificatore definito attraverso KeyboardModeSwitchKeyCode , GamepadModeSwitchKeyCode o VRSwitchKeyCode.