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 promueve 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 debajo de cualquier BasePart o Model para hacerlo arrastrable a través de todos los elementos (ratón, toque, controlador para juegoy VR), sin una línea de código.

  • Elija entre varias opciones de DragStyle, defina cómo el objeto responde a la movilidad a través de ResponseStyle y opcionalmente aplique límites de eje o de 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 partes o modelos anclados y se mantendrán exactamente donde los pusiste al lanzar.

  • Class.DragDetector|DragDetectors funciona en Studio mientras estás no usando las herramientas de Seleccionar , 0>Mover0>, 3>Escala3> o DragDetectors6>, lo que facilita probar y ajustar objetos arrastrables mientras estás editando.

Vea la guía Detectores de arrastre 3D para obtener 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 la imagen que deseas usar.

ApplyAtCenterOfMass

Leer paralelo

Cuando falso (por defecto), la fuerza de restricción se aplica en el punto en que el usuario hace clic. Cuando es verdadero, la fuerza se aplica en el centro de mas 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 la movimiento, expresado relativo a la referencia de marco. Para un DragStyle de Enum.DragDetectorDragStyle.TranslateLine , la dirección de la

DragFrame

Leer paralelo

Si ReferenceInstance está establecer, el CFrame del pivot relativo a la referencia; de lo contrario, el CFrame del pivot relativo a su marco en el comienzo de la arrastrada.

Leer paralelo

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

Enabled

Leer paralelo

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

GamepadModeSwitchKeyCode

Leer paralelo

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

KeyboardModeSwitchKeyCode

Leer paralelo

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

MaxDragAngle

Leer paralelo

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

Esto no es una restricción; simplemente impide que el detector de arrastre genere movimiento para mantenerse dentro de los límites. Vea AddConstraintFunction() para agregar una limitación personalizada a un arrastre.

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

MaxDragTranslation

Leer paralelo

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

Esto no es una restricción; simplemente impide que el detector de arrastre genere movimiento para mantenerse dentro de los límites. Vea AddConstraintFunction() para agregar una limitación personalizada a un arrastre.

MaxForce

Leer paralelo

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

MaxTorque

Leer paralelo

Máximo par de torsión aplicado para que el objeto alcance 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 ajustará dentro de ese rango.

Esto no es una restricción; simplemente impide que el detector de arrastre genere movimiento para mantenerse dentro de los límites. Vea AddConstraintFunction() para agregar una limitación personalizada a un arrastre.

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

MinDragTranslation

Leer paralelo

En cualquier dimensión, si esta es menor que MaxDragTranslation , la traducción se ajustará dentro de ese rango.

Esto no es una restricción; simplemente impide que el detector de arrastre genere movimiento para mantenerse dentro de los límites. Vea AddConstraintFunction() para agregar una limitación personalizada a un arrastre.

Orientation

Leer paralelo

Especifica la rotación YXZ de los ejes de movimiento en relación con la referencia de la máquina (no cambia la orientación de la máquina de referencia). La traducción lineal y la rotación de eje estarán en este eje de orientación Y , y la traducción plana en el plano XZ . Al cambiar este valor, se actualiza automáticamente la 1> Class.Drag

Leer paralelo

Controla el nivel de permiso para el cual los jugadores pueden interactuar con el DragDetector . El valor 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 relativamente a este CFrame que se puede recuperar a través del método 1> Class.DragDetector:GetReferenceFrame()|GetReferenceFrame()1> .

Si esta instancia es un PVInstance , el marco de referencia será su pivot; si es un Attachment , entonces su mundo será CFrame . Si es 2>nil2> o uno de los anteriores, el marco de referencia se basará en el pivot del detector de

Leer paralelo

Una vez que la propuesta de movimiento se haya calculado y potencialmente se haya restringido, este es el paradigma que se utiliza para herramienta de movimiento, o no herramienta de movimiento, los objetos afectados por el DragDetector . Consulte Enum.DragDetectorResponseStyle para obtener opciones.

Responsiveness

Leer paralelo

Los valores más altos hacen que el objeto alcance su objetivo más rápidamente. Solo es relevante si <a href="/reference/engine/datastores/datastores.md"> Class.DragDetector.ResponseStyle|ReplyStyle</a> es <a href="/reference/engine/datastores/datastores.md"> Class.拖动器.md</a> y el objeto padre no está anclado.

RunLocally

Leer paralelo

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

Si es así, el cliente procesa esos signales por sí mismo y no los replica al servidor. El cliente LocalScripts puede usarse para responder a estos eventos y el RemoteEvents puede usarse para enviar cualquier cambio que deba replicarse al servidor.

SecondaryAxis

No replicado
Leer paralelo

El eje secundario de la movimiento. Se refiere a la orientación usando el mismo paradigma que Attachments .

TrackballRadialPullFactor

Leer paralelo

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

TrackballRollFactor

Leer paralelo

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

VRSwitchKeyCode

Leer paralelo

Durante la entrada VR, el Enum.KeyCode para alternar el modo de movimiento secundario. Solo se aplica si el detector de dragón de clase Class.DragDetector.DragStyle|DragStyle tiene ambos modos de movimiento primario y secundario.

WorldAxis

No replicado
Leer paralelo

El Axis expresado en el espacio del mundo. Se refiere a la orientación utilizando el mismo paradigma que Attachments .

WorldSecondaryAxis

No replicado
Leer paralelo

El SecondaryAxis expresado en el espacio del mundo. Se refiere a la orientación utilizando el mismo paradigma que Attachments .

Métodos

AddConstraintFunction

Añade una función para modificar o limitar la propuesta de movimiento. La función toma una entrada CFrame de la propuesta de movimiento propuesta y devuelve una Datatype.CFrame de la propuesta de movimiento modificada o no modificada. Ambas las entradas y salidas se expresan relativamente a la referencia. P

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 prioridad sobre los valores más bajos.

function: function

Función para modificar o restringir la propuesta de movimiento. Esta función toma una entrada CFrame de propuesta de movimiento y devuelve un CFrame de 1>modificado1> o no modificado de la referencia.


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 la movimiento; véase la propiedad ReferenceInstance para más detalles.


Devuelve

La referencia CFrame en la que se expresa el movimiento.

RestartDrag

void

Puede invocarse desde un script para reiniciar el arranque del dragón usando nuevos parámetros, si los parámetros como DragStyle , Axis o SecondaryAxis cambian.


Devuelve

void

SetDragStyleFunction

void

Pasa una función a ser usada si y solo si DragStyle está configurado a Enum.DragDetectorDragStyle.Scriptable . La función dada se llama cuando responde a una señal de

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 donde desea que el objeto se mantenga donde está.

Parámetros

function: function

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


Devuelve

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)

Parámetros

function: function

Función para configurar la interactividad del detector. Esta función acepta un parámetro Player para habilitar/deshabilitar el detector para un jugador espec


Devuelve

void

Eventos

DragContinue

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

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, apuntado a la escena.

viewFrame: CFrame

CFrame del usuario's Camera .

vrInputFrame: OptionalCoordinateFrame

Si está usando un dispositivo de entrada VR, el CFrame de la mano que sostiene el cursor / punter / controlador.

isModeSwitchKeyDown: bool

Si el detector de arrastre tiene dos modos de movimiento principales y secundarios, este parámetro indica si el usuario está presionando la entrada de modificador definida a través de DragStyle, KeyboardModeSwitchKeyCode o


DragEnd

Se activa cuando un usuario deja de arrastrar el objeto.

Parámetros

playerWhoDragged: Player

El Player que inició la sincronización de arrastre a través de DragStart y ahora ha terminado (se ha lanzado) la sincronización de arrastre.


DragStart

Se activa cuando un usuario comienza a arrastrar el objeto.

Parámetros

playerWhoDragged: Player

Player quien inició el arrastre.

cursorRay: Ray

Ray emanando del cursor, apuntado a la escena.

viewFrame: CFrame

CFrame del usuario's Camera .

hitFrame: CFrame

El marco de golpe del raycast 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 está usando un dispositivo de entrada VR, el CFrame de la mano que sostiene el cursor / punter / controlador.

isModeSwitchKeyDown: bool

Si el detector de arrastre tiene dos modos de movimiento principales y secundarios, este parámetro indica si el usuario está presionando la entrada de modificador definida a través de DragStyle, KeyboardModeSwitchKeyCode o