DragDetector
*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
Establece el icono del cursor para mostrar cuando el mouse está activado sobre el padre de este DragDetector .
Si se aplica la fuerza de restricción al centro de masa del objeto.
El eje principal de la movilidad, expresado en relación con el marco de referencia.
El CFrame del pivot, dependiendo del detector de arrastre's ReferenceInstance .
El paradigma utilizado para generar la propuesta de movimiento.
Si el DragDetector responde a la entrada del usuario.
Durante la entrada del gamepad, el modificador Enum.KeyCode para el modo de movimiento secundario.
Durante la entrada del teclado, el modificador Enum.KeyCode para el modo de movimiento secundario.
Junto con MinDragAngle, impide que el detector de arrastre intente generar movimiento.
Junto con MinDragTranslation, impide que los intentos del detector de arrastre generen movimiento.
Fuerza máxima aplicada para que el objeto alcance su objetivo.
Máximo par de torsión aplicado para que el objeto alcance su objetivo.
Junto con MaxDragAngle , impide que el detector de arrastre genere intentos de movimiento.
Junto con MaxDragTranslation , impide que los intentos del detector de arrastre genere movimiento.
Especifica la rotación YXZ de los ejes de movimiento en relación con la referencia de la máquina.
Controla el nivel de permiso para el cual los jugadores pueden interactuar con el DragDetector .
Una instancia cuyo CFrame es el marco de referencia para el detector de arrastre.
El paradigma usado para herramienta de movimiento, o no herramienta de movimiento, los objetos afectados por el detector de arrastre.
Los valores más altos hacen que el objeto alcance su objetivo más rápidamente.
Si la entrada del usuario en un DragDetector replica al servidor o permanece local para el cliente específico.
El eje secundario de la movilidad.
Si DragStyle es Enum.DragDetectorDragStyle.RotateTrackball , multiplicador para agregar una rotación de giro radial como contribución al total.
Si DragStyle es Enum.DragDetectorDragStyle.RotateTrackball , multiplicador para agregar la rotación de la cola al total.
Durante la entrada VR, el modificador Enum.KeyCode para el modo de movimiento secundario.
El Axis expresado en el espacio del mundo.
El SecondaryAxis expresado en el espacio del mundo.
Establece el icono del cursor para mostrar cuando el mouse está sobre el padre de este ClickDetector o DragDetector .
Distancia máxima entre un personaje y el ClickDetector o DragDetector para que el jugador pueda interactuar con él.
Métodos
Añade una función para modificar o restringir la propuesta de movimiento.
Devuelve la referencia CFrame en la que se expresa la movimiento.
Puede invocarse desde un script para reiniciar el arrastre usando nuevos parámetros.
Pasa una función para usar si y solo si DragStyle está configurado como Enum.DragDetectorDragStyle.Scriptable .
Pasa una función para usar si y solo si PermissionPolicy está configurado como Enum.DragDetectorPermissionPolicy.Scriptable .
Eventos
- DragContinue(playerWhoDragged : Player,cursorRay : Ray,viewFrame : CFrame,vrInputFrame : OptionalCoordinateFrame,isModeSwitchKeyDown : bool):RBXScriptSignal
Se activa cuando un usuario continúa arrastrando el objeto después de que se haya iniciado DragStart .
Se activa cuando un usuario deja de arrastrar el objeto.
Se activa cuando un usuario comienza a arrastrar el objeto.
Se activa cuando un jugador interactúa con el padre de un ClickDetector o DragDetector .
Se activa cuando el padre de un ClickDetector o DragDetector está sobre el que se acerca un jugador.
Se activa cuando el cursor de un jugador se desplaza fuera del padre de un ClickDetector o DragDetector .
Se activa cuando un jugador hace clic derecho en su cursor en un ClickDetector o DragDetector .
Propriedades
ActivatedCursorIcon
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
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.
Axis
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
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.
DragStyle
El paradigma utilizado para generar la propuesta de movimiento, dado un flujo de rayos de cursor. Ver Enum.DragDetectorDragStyle para opciones.
GamepadModeSwitchKeyCode
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
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
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
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
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
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
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
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
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
PermissionPolicy
Controla el nivel de permiso para el cual los jugadores pueden interactuar con el DragDetector . El valor predeterminado es Enum.DragDetectorPermissionPolicy.Everybody .
ReferenceInstance
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
ResponseStyle
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
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
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
El eje secundario de la movimiento. Se refiere a la orientación usando el mismo paradigma que Attachments .
TrackballRadialPullFactor
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
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
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
El Axis expresado en el espacio del mundo. Se refiere a la orientación utilizando el mismo paradigma que Attachments .
WorldSecondaryAxis
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
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.
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
RestartDrag
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
SetDragStyleFunction
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
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
SetPermissionPolicyFunction
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
Devolução
Eventos
DragContinue
Se activa cuando un usuario continúa arrastrando el objeto después de que se haya iniciado DragStart .
Parâmetros
Si está usando un dispositivo de entrada VR, el CFrame de la mano que sostiene el cursor / punter / controlador.
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
DragStart
Se activa cuando un usuario comienza a arrastrar el objeto.
Parâmetros
El marco de golpe del raycast del cursor que inició el arrastre.
La parte que fue golpeada por el raycast del cursor que inició el arrastre.
Si está usando un dispositivo de entrada VR, el CFrame de la mano que sostiene el cursor / punter / controlador.
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