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

Proprietà provenienti da ClickDetector

Metodi

Eventi

Eventi provenienti da ClickDetector

Proprietà

ActivatedCursorIcon

ContentId
Lettura Parallela

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

Lettura Parallela

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.

Non Replicato
Lettura Parallela

L'asse principale della moto, espresso in relazione al riferimentoFrame. Per un DragStyle di Enum.DragDetectorDragStyle.TranslateLine , la direzione di traduzione; per un

DragFrame

Lettura Parallela

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

Lettura Parallela

Il paradigma usato per generare la proposta di movimento, dato un flusso di cursori. 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à di movimento secondaria. Si applica solo se il rilevatore di trascinamento DragStyle ha entrambe le modalità di movimento primarie e secondarie.

KeyboardModeSwitchKeyCode

Lettura Parallela

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

Lettura Parallela

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

Lettura Parallela

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

Lettura Parallela

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

Lettura Parallela

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

Lettura Parallela

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

Lettura Parallela

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

Lettura Parallela

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.

Lettura Parallela

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

ReferenceInstance

Lettura Parallela

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

Lettura Parallela

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

Lettura Parallela

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

Lettura Parallela

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

Non Replicato
Lettura Parallela

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

TrackballRadialPullFactor

Lettura Parallela

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

Lettura Parallela

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

Lettura Parallela

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

Non Replicato
Lettura Parallela

Il Axis espresso nello Spaziodel mondo. Si riferisce all'orientamento usando lo stesso paradigma di Attachments .

WorldSecondaryAxis

Non Replicato
Lettura Parallela

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

priority: number

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

function: function

Funzione per modificare o limitare la proposta di movimento. Questa funzione prende un input CFrame di proposta movimento e restituisce un CFrame di 1>modificato1> o non modificato movimento, entrambi relativi alla riferimento frame.


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

Il riferimento CFrame in cui la moto è espressa.

RestartDrag

void

Può essere invocato da uno script per riavviare il trascinamento utilizzando nuovi parametri, se i parametri come DragStyle , Axis o SecondaryAxis cambiano.


Restituzioni

void

SetDragStyleFunction

void

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

function: function

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

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)

Parametri

function: function

Funzione per impostare l'interattività del detector. Questa funzione accetta un Player parametro per abilitare/disabilitare il


Restituzioni

void

Eventi

DragContinue

Si attiva 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 ora sta continuando il trascinamento.

cursorRay: Ray

Ray emanando dal cursore, mirato nella scena.

viewFrame: CFrame

CFrame della classe utente Camera .

vrInputFrame: OptionalCoordinateFrame

Se si utilizza un Dispositivodi input VR, il CFrame della mano che tiene il cursor/pointer/controllore.

isModeSwitchKeyDown: bool

Se il rilevatore di trascinamento ha entrambi i modi di movimento primari e secondari, questo parametro indica se l'utente sta premendo l'input del modificatore definito attraverso DragStyle , Class.DragDetector.GamepadModeSwitchKeyCode|Gamepad


DragEnd

Si attiva quando un utente smette di trascinare l'oggetto.

Parametri

playerWhoDragged: Player

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


DragStart

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

Parametri

playerWhoDragged: Player

Player che ha iniziato il trascinamento.

cursorRay: Ray

Ray emanando dal cursore, mirato nella scena.

viewFrame: CFrame

CFrame della classe utente Camera .

hitFrame: CFrame

Il frame di colpo del raggio del cursore che ha iniziato il trascinamento.

clickedPart: BasePart

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

vrInputFrame: OptionalCoordinateFrame

Se si utilizza un Dispositivodi input VR, il CFrame della mano che tiene il cursor/pointer/controllore.

isModeSwitchKeyDown: bool

Se il rilevatore di trascinamento ha entrambi i modi di movimento primari e secondari, questo parametro indica se l'utente sta premendo l'input del modificatore definito attraverso DragStyle , Class.DragDetector.GamepadModeSwitchKeyCode|Gamepad