DragDetector

Visualizza obsoleti

*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à

Proprietà provenienti da ClickDetector

Metodi

Eventi

Eventi provenienti da ClickDetector

Proprietà

ActivatedCursorIcon

ContentId
Lettura Parallela

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

Lettura Parallela

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.

Non Replicato
Lettura Parallela

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

Lettura Parallela

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.

Lettura Parallela

Il paradigma utilizzato per generare la proposta di moto, dato uno stream di raggi del cursore. Vedi Enum.DragDetectorDragStyle per le opzioni.

Enabled

Lettura Parallela

Se vero, il DragDetector risponde all'input dell'utente; se falso, non lo fa.

GamepadModeSwitchKeyCode

Lettura Parallela

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

Lettura Parallela

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

Lettura Parallela

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

Lettura Parallela

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

Lettura Parallela

Forza massima applicata all'oggetto per raggiungere il suo obiettivo. Rilevante solo se ResponseStyle è Enum.DragDetectorResponseStyle.Physical e l'oggetto padre non è ancorato.

MaxTorque

Lettura Parallela

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

Lettura Parallela

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

Lettura Parallela

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

Lettura Parallela

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.

Lettura Parallela

Controlla il livello di autorizzazione per cui i giocatori possono interagire con il DragDetector . Il predefinito è Enum.DragDetectorPermissionPolicy.Everybody .

ReferenceInstance

Lettura Parallela

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.

Lettura Parallela

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

Lettura Parallela

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

Lettura Parallela

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

Non Replicato
Lettura Parallela

L'asse secondario della moto. Si riferisce all'orientamento utilizzando lo stesso paradigma di Attachments .

TrackballRadialPullFactor

Lettura Parallela

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

Lettura Parallela

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

Lettura Parallela

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

Non Replicato
Lettura Parallela

Il Axis espresso nello Spaziomondiale. Si riferisce all'orientamento utilizzando lo stesso paradigma di Attachments .

WorldSecondaryAxis

Non Replicato
Lettura Parallela

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

priority: number

L'ordine di priorità per le funzioni aggiunte tramite questo metodo. I valori più alti hanno la precedenza sui valori più bassi.

Valore predefinito: ""
function: function

Funzione per modificare o limitare la proposta di moto.Questa funzione riceve un input CFrame di proposta moto e restituisce un CFrame di modificata o non modificata moto, entrambi relativi al frame di riferimento.

Valore predefinito: ""

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

Il riferimento CFrame in cui viene espressa la velocità.

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

function: function

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.

Valore predefinito: ""

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

function: function

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.

Valore predefinito: ""

Restituzioni

()

Eventi

DragContinue

Si accende quando un utente continua a trascinare l'oggetto dopo che DragStart è stato inizializzato.

Parametri

playerWhoDragged: Player

Il Player che ha iniziato il trascinamento attraverso DragStart e sta continuando il trascinamento.

cursorRay: Ray

Ray emanante dal cursore, diretto nella scena.

viewFrame: CFrame

CFrame del Camera dell'utente.

vrInputFrame: OptionalCoordinateFrame

Se si utilizza un Dispositivodi input VR, la CFrame della mano che tiene il cursore/puntatore/controllore.

isModeSwitchKeyDown: boolean

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

playerWhoDragged: Player

Il Player che ha iniziato il trascinamento attraverso DragStart e ora ha terminato (rilasciato) il trascinamento.


DragStart

Si attiva quando un utente inizia a trascinare l'oggetto.

Parametri

playerWhoDragged: Player

Player chi ha iniziato il trascinamento.

cursorRay: Ray

Ray emanante dal cursore, diretto nella scena.

viewFrame: CFrame

CFrame del Camera dell'utente.

hitFrame: CFrame

Il quadro colpito del raggio del cursore che ha iniziato il trascinamento.

clickedPart: BasePart

La parte che è stata colpita dal raycast del cursore che ha iniziato il trascinamento.

vrInputFrame: OptionalCoordinateFrame

Se si utilizza un Dispositivodi input VR, la CFrame della mano che tiene il cursore/puntatore/controllore.

isModeSwitchKeyDown: boolean

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.