DragDetector

Mostrar obsoleto

*Este contenido se traduce usando la IA (Beta) y puede contener errores. Para ver esta página en inglés, haz clic en aquí.

La instancia DragDetector facilita y alienta la interacción con objetos 3D en una experiencia, como abrir puertas y cajones, deslizar una parte alrededor, y mucho más.Las características clave incluyen:

  • Coloca un DragDetector bajo cualquier BasePart o Model para hacerlo arrastrable a través de todas las entradas (ratón, toque, controlador para juegoy VR), todo sin una sola línea de código.

  • Elige entre varias opciones DragStyle , define cómo responde el objeto a la movilidad a través de ResponseStyle , y aplica opcionalmente límites de eje o movimiento.

  • Los scripts pueden responder a la manipulación de objetos arrastrados para conducir la interfaz de usuario o tomar decisiones lógicas, como ajustar el nivel de luz en una habitación basado en un dimmer de pared deslizante.

  • Los jugadores pueden manipular piezas o modelos anclados y se quedarán exactamente donde los pongas al lanzamiento.

  • DragDetectors trabaja en Studio mientras tengas no usando las herramientas Seleccionar , Mover , Escalar o Rotar , lo que facilita probar y ajustar objetos arrastrables mientras se edita.

Consulte la guía Detectores de arrastrado 3D para detalles y ejemplos de uso.

Resumen

Propiedades

Propiedades heredados de ClickDetector

Métodos

Eventos

Eventos heredados de ClickDetector

Propiedades

ActivatedCursorIcon

ContentId
Leer paralelo

Establece el icono del cursor para mostrar cuando el mouse está activado sobre el padre de este DragDetector .Si esta propiedad se deja en blanco, el detector usará el íconopredeterminado.

Para cambiar el íconodel cursor activado, establece esta propiedad en el ID de activo de la imagen que te gustaría usar.

ApplyAtCenterOfMass

Leer paralelo

Cuando es falso (por defecto), se aplica la fuerza de restricción en el punto en el que el usuario hace clic.Cuando es verdadero, se aplica la fuerza en el centro de masa del objeto.Solo es relevante si ResponseStyle es Enum.DragDetectorResponseStyle.Physical y el objeto padre no está anclado.

No replicado
Leer paralelo

El eje principal de movimiento, expresado en relación con el marco de referencia.Para un DragStyle de Enum.DragDetectorDragStyle.TranslateLine , la dirección de traducción; para Enum.DragDetectorDragStyle.TranslatePlane , la normal al plano de movimiento; para Enum.DragDetectorDragStyle.RotateAxis , el eje de rotación de 1D.Cambiar este valor actualiza automáticamente Orientation y viceversa.

DragFrame

Leer paralelo

Si ReferenceInstance está establecer, el CFrame del pivote relativo al marco de referencia; de lo contrario, el CFrame del pivote relativo a su marco al comienzo del arrastre.

Leer paralelo

El paradigma utilizado para generar la propuesta de movimiento, dado un flujo de rayos del cursor. Vea Enum.DragDetectorDragStyle para las opciones.

Enabled

Leer paralelo

Si es verdadero, el DragDetector responde a la entrada del usuario; si es falso, no lo hace.

GamepadModeSwitchKeyCode

Leer paralelo

Durante la entrada del gamepad, el Enum.KeyCode para alternar el modo secundario de movimiento.Solo se aplica si el detector de arrastre tiene DragStyle ambos modos de movimiento primario y secundario.

KeyboardModeSwitchKeyCode

Leer paralelo

Durante la entrada del teclado, el Enum.KeyCode para alternar el modo secundario de movimiento.Solo se aplica si el detector de arrastre tiene DragStyle ambos modos de movimiento primario y secundario.

MaxDragAngle

Leer paralelo

Si esto es mayor que MinDragAngle, la traducción se recortará dentro de ese rango.

Esto no es una restricción; simplemente impide que los intentos del detector de arrastre generen movimiento para permanecer dentro de los límites.Vea AddConstraintFunction() para agregar una restricción personalizada a un arrastrado.

Solo es relevante si DragStyle es Enum.DragDetectorDragStyle.RotateAxis.

MaxDragTranslation

Leer paralelo

En cualquier dimensión, si esto es mayor que MinDragTranslation, la traducción se recortará dentro de ese rango.

Esto no es una restricción; simplemente impide que los intentos del detector de arrastre generen movimiento para permanecer dentro de los límites.Vea AddConstraintFunction() para agregar una restricción personalizada a un arrastrado.

MaxForce

Leer paralelo

Fuerza máxima aplicada al objeto para alcanzar su objetivo. Solo es relevante si ResponseStyle es Enum.DragDetectorResponseStyle.Physical y el objeto padre no está anclado.

MaxTorque

Leer paralelo

Máximo momento de torsión aplicado al objeto para alcanzar su objetivo. Solo es relevante si ResponseStyle es Enum.DragDetectorResponseStyle.Physical y el objeto padre no está anclado.

MinDragAngle

Leer paralelo

Si esto es menos de MaxDragAngle, la traducción se recortará dentro de ese rango.

Esto no es una restricción; simplemente impide que los intentos del detector de arrastre generen movimiento para permanecer dentro de los límites.Vea AddConstraintFunction() para agregar una restricción personalizada a un arrastrado.

Solo es relevante si DragStyle es Enum.DragDetectorDragStyle.RotateAxis.

MinDragTranslation

Leer paralelo

En cualquier dimensión, si esto es menos de MaxDragTranslation , la traducción se recortará dentro de ese rango.

Esto no es una restricción; simplemente impide que los intentos del detector de arrastre generen movimiento para permanecer dentro de los límites.Vea AddConstraintFunction() para agregar una restricción personalizada a un arrastrado.

Orientation

Leer paralelo

Specifica la rotación YXZ de los ejes de movimiento relativos al marco de referencia (no cambia la orientación del propio marco de referencia).La traducción lineal y la rotación axial estarán en este eje reorientado Y y la traducción plana en el plano XZ .Cambiar este valor actualiza automáticamente Axis y viceversa.

Leer paralelo

Controla el nivel de permiso para el cual los jugadores pueden interactuar con el DragDetector . El predeterminado es Enum.DragDetectorPermissionPolicy.Everybody .

ReferenceInstance

Leer paralelo

Una instancia cuyo CFrame es el marco de referencia para el detector de arrastre.El DragFrame se expresa en relación con este CFrame que se puede recuperar a través del método GetReferenceFrame().

Si esta instancia es un PVInstance , el marco de referencia será su pivote; si es un Attachment , entonces su mundo será CFrame .Si es nil o ninguno de los anteriores, el marco de referencia se basará en el pivote del padre del detector de arrastre BasePart o Model .

Leer paralelo

Una vez que se haya calculado y potencialmente restringido la moción propuesta, este es el paradigma utilizado para herramienta de movimiento, o no herramienta de movimiento, los objetos afectados por el DragDetector .Vea Enum.DragDetectorResponseStyle para opciones.

Responsiveness

Leer paralelo

Los valores más altos hacen que el objeto alcance su objetivo más rápidamente. Solo es relevante si ResponseStyle es Enum.DragDetectorResponseStyle.Physical y el objeto padre no está anclado.

RunLocally

Leer paralelo

Si es falso (por defecto), el cliente envía señales replicadas (DragStart, DragContinue, DragEnd) al servidor que procesa los rayos del cursor, realiza cambios en el aplicación de modeladode datos y los replica hacia los clientes.

Si es verdadero, el cliente procesa esas señales por sí mismo y no las replica al servidor.El cliente LocalScripts se puede utilizar para responder a estos eventos y RemoteEvents se puede utilizar para enviar cualquier cambio resultante que deba replicarse al servidor.

SecondaryAxis

No replicado
Leer paralelo

El eje secundario del movimiento. Se relaciona con la orientación utilizando el mismo paradigma que Attachments .

TrackballRadialPullFactor

Leer paralelo

Cuando el cursor está fuera del trackball, el DragDetector puede aplicar una rotación de fuerza radial que gira la bola como si estuviera tratando de rodar hacia el cursor.Esta propiedad es un multiplicador de 0 a 1 para agregar esa rotación como una contribución al total.Solo es relevante si DragStyle es Enum.DragDetectorDragStyle.RotateTrackball.

TrackballRollFactor

Leer paralelo

Cuando el cursor está fuera del trackball, el DragDetector puede aplicar una rotación de rodillo que gira la bola como si estuviera montada en un registro de vinilo que se enfrenta al espectador.Esta propiedad es un multiplicador de 0 a 1 para agregar esa rotación de rodillo al total.Solo es relevante si DragStyle es Enum.DragDetectorDragStyle.RotateTrackball.

VRSwitchKeyCode

Leer paralelo

Durante la entrada VR, el Enum.KeyCode para alternar el modo secundario de movimiento.Solo se aplica si el detector de arrastre tiene DragStyle ambos modos de movimiento primario y secundario.

WorldAxis

No replicado
Leer paralelo

El Axis expresado en el espacio mundial. Se relaciona con la orientación usando el mismo paradigma que Attachments .

WorldSecondaryAxis

No replicado
Leer paralelo

El SecondaryAxis expresado en el espacio mundial. Se relaciona con la orientación usando el mismo paradigma que Attachments .

Métodos

AddConstraintFunction

Añade una función para modificar o limitar el movimiento propuesto.La función toma una entrada CFrame de la moción propuesta **** y devuelve una entrada CFrame de la moción modificada **** o no modificada.Ambas entradas y salidas se expresan en relación con el marco de referencia.Puedes agregar múltiples funciones que se llamarán en orden por priority , pasando los resultados en una cadena.

Para eliminar una función de restricción agregada, llame a Disconnect() en el objeto de conexión devuelto.

Parámetros

priority: number

El orden de prioridad para las funciones agregadas a través de este método. Los valores más altos tienen precedencia sobre los valores más bajos.

Valor predeterminado: ""
function: function

Función para modificar o limitar la propuesta de movimiento.Esta función toma una entrada CFrame de la propuesta de movimiento propuesta y devuelve un CFrame de movimiento modificado o no modificado, ambos relativos al marco de referencia.

Valor predeterminado: ""

Devuelve

Usa este objeto de conexión para eliminar la función de restricción.

GetReferenceFrame

Devuelve la referencia CFrame en la que se expresa el movimiento; vea la propiedad ReferenceInstance para más detalles.


Devuelve

La referencia CFrame en la que se expresa el movimiento.

RestartDrag

()

Puede invocarse desde un script para reiniciar el arrastre usando nuevos parámetros, si los parámetros como DragStyle, Axis o SecondaryAxis cambian.


Devuelve

()

SetDragStyleFunction

()

Pasa una función para usar si y solo si DragStyle está configurado como Enum.DragDetectorDragStyle.Scriptable.La función dada se llama al responder a una señal DragContinue , recibe el rayo del cursor del mundo de la señal con el tipo Ray , y devuelve un CFrame que contiene la ubicación y orientación deseada del pivote en el espacio mundial.

Si la función devuelve nil, el objeto no se moverá.Esto es útil si el script aún no ha recopilado toda la información que necesita para dar la respuesta correcta, o en casos temporales en los que quieres que el objeto se quede donde está.

Parámetros

function: function

Función para monitorear señales DragContinue de alerta.Esta función recibe el rayo del cursor del espacio mundial de la señal y devuelve un CFrame que contiene la ubicación y orientación deseada del pivote en el espacio mundial.Si esta función devuelve nil , el objeto no se moverá.

Valor predeterminado: ""

Devuelve

()

SetPermissionPolicyFunction

()

Pasa una función para usar si y solo si PermissionPolicy está configurado como Enum.DragDetectorPermissionPolicy.Scriptable.La función dada acepta un parámetro Player para activar/desactivar el detector para un jugador específico.También recibe un parámetro part que indica qué específico BasePart se hizo clic, como una parte dentro de un elemento arrastrable Model ; esto es útil para habilitar/deshabilitar el detector en función del valor Name , Color , HasTag() del elemento, o de otros detalles.


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)

Parámetros

function: function

Función para establecer la interactividad del detector.Esta función acepta un parámetro Player para activar/desactivar el detector para un jugador específico.También recibe un parámetro part que indica qué específico BasePart se hizo clic, como una parte dentro de un elemento arrastrable Model ; esto es útil para habilitar/deshabilitar el detector en función del valor Name , Color , HasTag() del elemento, o de otros detalles.

Valor predeterminado: ""

Devuelve

()

Eventos

DragContinue

Se enciende cuando un usuario continúa arrastrando el objeto después de que DragStart se haya iniciado.

Parámetros

playerWhoDragged: Player

El Player que inició el arrastre a través de DragStart y ahora está continuando el arrastre.

cursorRay: Ray

Ray emanando del cursor, dirigido a la escena.

viewFrame: CFrame

CFrame de los Camera del usuario.

vrInputFrame: OptionalCoordinateFrame

Si se utiliza un dispositivo de entrada VR, el CFrame de la mano que sostiene el cursor/visor/controlador.

isModeSwitchKeyDown: boolean

Si el detector de arrastre tiene DragStyle ambos modos de movimiento primario y secundario, este parámetro indica si el usuario está presionando la entrada modificadora definida a través de KeyboardModeSwitchKeyCode , GamepadModeSwitchKeyCode o VRSwitchKeyCode .


DragEnd

Se activa cuando un usuario deja de arrastrar el objeto.

Parámetros

playerWhoDragged: Player

El Player que inició el arrastre a través de DragStart y ahora ha terminado (liberado) el arrastre.


DragStart

Se activa cuando un usuario comienza a arrastrar el objeto.

Parámetros

playerWhoDragged: Player

Player quién inició el arrastre.

cursorRay: Ray

Ray emanando del cursor, dirigido a la escena.

viewFrame: CFrame

CFrame de los Camera del usuario.

hitFrame: CFrame

El marco de golpe del rayo del cursor que inició el arrastre.

clickedPart: BasePart

La parte que fue golpeada por el raycast del cursor que inició el arrastre.

vrInputFrame: OptionalCoordinateFrame

Si se utiliza un dispositivo de entrada VR, el CFrame de la mano que sostiene el cursor/visor/controlador.

isModeSwitchKeyDown: boolean

Si el detector de arrastre tiene DragStyle ambos modos de movimiento primario y secundario, este parámetro indica si el usuario está presionando la entrada modificadora definida a través de KeyboardModeSwitchKeyCode , GamepadModeSwitchKeyCode o VRSwitchKeyCode .