DragDetector

Mostrar obsoleto

*Este conteúdo é traduzido por IA (Beta) e pode conter erros. Para ver a página em inglês, clique aqui.

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.

Resumo

Propriedades

Propriedades herdados de ClickDetector

Métodos

Eventos

Eventos herdados de ClickDetector

Propriedades

ActivatedCursorIcon

ContentId
Ler Parallel

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

Ler Parallel

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.

Não replicado
Ler Parallel

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

Ler Parallel

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.

Ler Parallel

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

Enabled

Ler Parallel

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

GamepadModeSwitchKeyCode

Ler Parallel

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

Ler Parallel

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

Ler Parallel

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

Ler Parallel

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

Ler Parallel

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

Ler Parallel

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

Ler Parallel

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

Ler Parallel

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

Ler Parallel

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

Ler Parallel

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

ReferenceInstance

Ler Parallel

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

Ler Parallel

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

Ler Parallel

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

Ler Parallel

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

Não replicado
Ler Parallel

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

TrackballRadialPullFactor

Ler Parallel

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

Ler Parallel

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

Ler Parallel

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

Não replicado
Ler Parallel

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

WorldSecondaryAxis

Não replicado
Ler Parallel

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.


Devolução

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.


Devolução

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.


Devolução

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á.


Devolução

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


Devolução

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