DragDetector
*Este conteúdo é traduzido por IA (Beta) e pode conter erros. Para ver a página em inglês, clique aqui.
A instância facilita e incentiva a interação com objetos 3D em uma experiência, como abrir portas e gavetas, deslizar uma parte ao redor e muito mais.As principais características incluem:
Coloque um DragDetector sob qualquer BasePart ou Model para torná-lo arrastável através de todos os inputs (mouse, touch, controle / controle de jogoe VR), todos sem uma única linha de código.
Escolha entre várias opções DragStyle de escolha, defina como o objeto responde a movimentos através de ResponseStyle e aplique, opcionalmente, limites de eixo ou de movimento.
Scripts podem responder à manipulação de objetos arrastados para dirigir a interface de usuário ou tomar decisões lógicas, como ajustar o nível de luz em uma sala com base em um interruptor de parede deslizante.
Jogadores podem manipular peças ou modelos ancorados e eles permanecerão exatamente onde você os colocou após o lançamento.
DragDetectors trabalhar no Studio enquanto você estiver não usando as ferramentas Selecionar , Mover , Escala ou Girar , tornando mais fácil testar e ajustar objetos arrastáveis enquanto estiver editando.
Veja o Detectores de Drag 3D guia para detalhes e exemplos de uso.
Resumo
Propriedades
Define o ícone do cursor para exibir quando o mouse é ativado sobre o pai deste DragDetector .
Se a força de restrição é aplicada ao centro de massa do Objeto.
O eixo principal de movimento, expresso em relação ao quadro de referência.
O CFrame da articulação, dependendo do detector de arrasto de ReferenceInstance.
O paradigma usado para gerar a proposta de movimento.
Se o DragDetector responde à entrada do usuário.
Durante a entrada do gamepad, o modificador Enum.KeyCode para o modo secundário de movimento.
Durante a entrada no teclado, o modificador Enum.KeyCode para o modo secundário de movimento.
Junto com MinDragAngle, impede as tentativas do detector de arrastamento de gerar movimento.
Junto com MinDragTranslation, impede as tentativas do detector de arrastamento de gerar movimento.
Força máxima aplicada ao objeto para alcançar seu objetivo.
Torque máximo aplicado para o objeto alcançar seu objetivo.
Junto com MaxDragAngle, impede as tentativas do detector de arrastamento de gerar movimento.
Junto com MaxDragTranslation, impede as tentativas do detector de arrastamento de gerar movimento.
Especifica a YXZ rotação de eixos de movimento em relação ao quadro de referência.
Controla o nível de permissão para o qual os jogadores podem interagir com o DragDetector.
Uma instância cujo CFrame é o quadro de referência para o detector de arrastamento.
O paradigma usado para movimento, ou não movimento, os objetos afetados pelo detector de arrastamento.
Valores mais altos fazem com que o objeto alcance seu objetivo mais rapidamente.
Se a entrada do usuário em um DragDetector replica para o servidor ou permanece local para o cliente específico.
O eixo secundário da movimentação.
Se DragStyle for Enum.DragDetectorDragStyle.RotateTrackball, multiplicador para adicionar uma rotação de puxão radial como contribuição ao total.
Se DragStyle for Enum.DragDetectorDragStyle.RotateTrackball, multiplicador para adicionar rotação de rolos ao total.
Durante a entrada VR, o modificador Enum.KeyCode para o modo secundário de movimento.
O Axis expresso no espaço mundial.
O SecondaryAxis expresso no espaço mundial.
Define o ícone do cursor para exibir quando o mouse está sobre o pai deste ClickDetector ou DragDetector .
Distância máxima entre um personagem e o ClickDetector ou DragDetector para o jogador poder interagir com ele.
Métodos
Adiciona uma função para modificar ou restringir a movimentação proposta.
Retorna a referência CFrame na qual a movimentação é expressa.
Pode ser invocado a partir de um script para reiniciar o arraste usando novos parâmetros.
Passa uma função a ser usada se e somente se DragStyle for definido como Enum.DragDetectorDragStyle.Scriptable.
Passa uma função a ser usada se e somente se PermissionPolicy for definido como Enum.DragDetectorPermissionPolicy.Scriptable.
Eventos
- DragContinue(playerWhoDragged : Player,cursorRay : Ray,viewFrame : CFrame,vrInputFrame : OptionalCoordinateFrame,isModeSwitchKeyDown : boolean):RBXScriptSignal
Incêndios quando um usuário continua arrastando o objeto depois que DragStart foi iniciado.
Dispara quando um usuário para de arrastar o Objeto.
Dispara quando um usuário começa a arrastar o Objeto.
Incêndios quando um jogador interage com o pai de um ClickDetector ou DragDetector .
Incêndios quando o pai de um ClickDetector ou DragDetector é sobreposto por um jogador.
Dispara quando o cursor de um jogador passa fora do pai de um ClickDetector ou DragDetector.
Dispara quando um jogador clica com o botão direito do mouse no cursor do mouse em um ClickDetector ou DragDetector.
Propriedades
ActivatedCursorIcon
Define o ícone do cursor para exibir quando o mouse é ativado sobre o pai deste DragDetector .Se esta propriedade for deixada em branco, o detector usará o ícone padrão.
Para alterar o ícone do cursor ativado, defina esta propriedade para o ID do recurso da imagem que você gostaria de usar.
ApplyAtCenterOfMass
Quando falso (padrão), a força de restrição é aplicada no ponto em que o usuário clica.Quando verdadeiro, a força é aplicada no centro de massa do Objeto.Só é relevante se ResponseStyle for Enum.DragDetectorResponseStyle.Physical e o objeto pai não estiver ancorado.
Axis
O eixo principal de movimento, expresso em relação ao quadro de referência.Para um DragStyle de Enum.DragDetectorDragStyle.TranslateLine , a direção de tradução; para Enum.DragDetectorDragStyle.TranslatePlane , o normal ao plano de movimento; para Enum.DragDetectorDragStyle.RotateAxis , o eixo de rotação de 1D.Mudar esse valor atualiza automaticamente Orientation e vice-versa.
DragFrame
Se ReferenceInstance for configurar, o CFrame do pivô em relação ao quadro de referência; caso contrário, o CFrame do pivô em relação ao seu quadro no início do arrastamento.
DragStyle
O paradigma usado para gerar a proposta de movimento, dado um fluxo de raios de cursor. Veja Enum.DragDetectorDragStyle para opções.
GamepadModeSwitchKeyCode
Durante a entrada no gamepad, o Enum.KeyCode para alternar o modo secundário de movimento.Aplica-se somente se o detector de arrasto tiver DragStyle modos primário e secundário de movimento.
KeyboardModeSwitchKeyCode
Durante a entrada no teclado, o Enum.KeyCode para alternar o modo secundário de movimento.Aplica-se somente se o detector de arrasto tiver DragStyle modos primário e secundário de movimento.
MaxDragAngle
Se isso for maior que MinDragAngle, a tradução será clampada dentro desse alcance.
Esta não é uma restrição; ele apenas impede as tentativas do detector de arrastamento de gerar movimento para permanecer dentro dos limites.Veja AddConstraintFunction() para adicionar restrição personalizada a um arraste.
Só é relevante se DragStyle for Enum.DragDetectorDragStyle.RotateAxis.
MaxDragTranslation
Em qualquer dimensão, se isso for maior que MinDragTranslation, a tradução será clampada dentro desse alcance.
Esta não é uma restrição; ele apenas impede as tentativas do detector de arrastamento de gerar movimento para permanecer dentro dos limites.Veja AddConstraintFunction() para adicionar restrição personalizada a um arraste.
MaxForce
Força máxima aplicada ao objeto para alcançar seu objetivo. Apenas relevante se ResponseStyle for Enum.DragDetectorResponseStyle.Physical e o objeto pai não estiver ancorado.
MaxTorque
Torque máximo aplicado para o objeto alcançar seu objetivo. Apenas relevante se ResponseStyle for Enum.DragDetectorResponseStyle.Physical e o objeto pai não estiver ancorado.
MinDragAngle
Se isso for menor que MaxDragAngle, a tradução será clampada dentro desse alcance.
Esta não é uma restrição; ele apenas impede as tentativas do detector de arrastamento de gerar movimento para permanecer dentro dos limites.Veja AddConstraintFunction() para adicionar restrição personalizada a um arraste.
Só é relevante se DragStyle for Enum.DragDetectorDragStyle.RotateAxis.
MinDragTranslation
Em qualquer dimensão, se isso for menor que MaxDragTranslation, a tradução será clampada dentro desse alcance.
Esta não é uma restrição; ele apenas impede as tentativas do detector de arrastamento de gerar movimento para permanecer dentro dos limites.Veja AddConstraintFunction() para adicionar restrição personalizada a um arraste.
Orientation
Especifica a rotação YXZ de eixos de movimento em relação ao quadro de referência (não altera a orientação do próprio quadro de referência).Tradução linear e rotação axial estarão neste eixo reorientado Y , e tradução plana no plano XZ .Mudar esse valor atualiza automaticamente Axis e vice-versa.
PermissionPolicy
Controla o nível de permissão para o qual os jogadores podem interagir com o DragDetector. O padrão é Enum.DragDetectorPermissionPolicy.Everybody.
ReferenceInstance
Uma instância cujo CFrame é o quadro de referência para o detector de arrastamento.O DragFrame é expresso em relação a este CFrame que pode ser recuperado através do método GetReferenceFrame().
Se esta instância for um PVInstance, o quadro de referência será seu pivô; se for um Attachment, então será o mundo dele CFrame.Se for nil ou nenhum dos anteriores, o quadro de referência será baseado no pivô do pai do detector de arrastamento BasePart ou Model.
ResponseStyle
Uma vez que a proposta proposta foi computada e potencialmente restrita, este é o paradigma usado para movimento, ou não movimento, os objetos afetados pelo DragDetector.Veja Enum.DragDetectorResponseStyle para opções.
Responsiveness
Valores mais altos fazem com que o objeto alcance seu objetivo mais rapidamente. Apenas relevante se ResponseStyle for Enum.DragDetectorResponseStyle.Physical e o objeto pai não estiver ancorado.
RunLocally
Se falso (padrão), o cliente envia sinais replicados ( DragStart , DragContinue , DragEnd ) ao servidor que processa raios de cursor, faz alterações no modelo de dados e os replica para os clientes.
Se for verdadeiro, o cliente processa esses sinais por si mesmo e não os replica para o servidor.Cliente LocalScripts pode ser usado para responder a esses eventos e RemoteEvents pode ser usado para enviar quaisquer alterações resultantes que devem ser replicadas para o servidor.
SecondaryAxis
O eixo secundário da movimentação. Relaciona-se à orientação usando o mesmo paradigma que Attachments .
TrackballRadialPullFactor
Quando o cursor está fora do trackball, o DragDetector pode aplicar uma rotação de tração radial que gira a bola como se estivesse tentando rolar para o cursor.Essa propriedade é um multiplicador de 0 a 1 para adicionar essa rotação como uma contribuição ao total.Só é relevante se DragStyle for Enum.DragDetectorDragStyle.RotateTrackball.
TrackballRollFactor
Quando o cursor está fora do trackball, o DragDetector pode aplicar uma rotação de rolagem que gira a bola como se estivesse montada em um registro de vinil voltado para o visualizador.Essa propriedade é um multiplicador de 0 a 1 para adicionar essa rotação de rolo ao total.Só é relevante se DragStyle for Enum.DragDetectorDragStyle.RotateTrackball.
VRSwitchKeyCode
Durante a entrada VR, o Enum.KeyCode para alternar o modo secundário de movimento.Aplica-se somente se o detector de arrasto tiver DragStyle modos primário e secundário de movimento.
WorldAxis
O Axis expresso no espaço mundial. Relaciona-se à orientação usando o mesmo paradigma que Attachments .
WorldSecondaryAxis
O SecondaryAxis expresso no espaço mundial. Relaciona-se à orientação usando o mesmo paradigma que Attachments .
Métodos
AddConstraintFunction
Adiciona uma função para modificar ou restringir a movimentação proposta.A função recebe uma entrada CFrame de proposta de movimento e retorna uma CFrame de modificada ou não modificada de movimento.Tanto a entrada quanto a saída são expressas em relação ao quadro de referência.Você pode adicionar múltiplas funções que serão chamadas em ordem por priority, passando os resultados em uma cadeia.
Para remover uma função de restrição adicionada, chame Disconnect() na Objetoretornada.
Parâmetros
A ordem de prioridade para funções adicionadas via este método. Os valores mais altos têm precedência sobre os valores mais baixos.
Devolução
Use este objeto de conexão para remover a função de restrição.
GetReferenceFrame
Retorna a referência CFrame na qual a movimentação é expressa; veja a propriedade ReferenceInstance para mais detalhes.
Devolução
RestartDrag
Pode ser invocado a partir de um script para reiniciar o arrastamento usando novos parâmetros, se os parâmetros como DragStyle, Axis ou SecondaryAxis mudarem.
Devolução
SetDragStyleFunction
Passa uma função a ser usada se e somente se DragStyle for definido como Enum.DragDetectorDragStyle.Scriptable.A função dada é chamada ao responder a um sinal DragContinue , recebe o raio de cursor do mundo do sinal com o tipo Ray e retorna um CFrame que contém a localização e orientação desejadas do pivô no espaço do mundo.
Se a função retornar nil, o objeto não será movido.Isso é útil se o script ainda não coletou todas as informações de que precisa para dar a resposta correta ou em casos temporários em que você quer que o objeto permaneça onde está.
Parâmetros
Função para monitorar DragContinue sinais.Essa função recebe o raio de cursor do espaço mundial do sinal e retorna um CFrame que contém o local e a orientação desejados do pivô no espaço mundial.Se essa função retornar nil, o objeto não será movido.
Devolução
SetPermissionPolicyFunction
Passa uma função a ser usada se e somente se PermissionPolicy for definido como Enum.DragDetectorPermissionPolicy.Scriptable.A função dada aceita um parâmetro Player para ativar/desativar o detector para um jogador específico.Ele também recebe um parâmetro part que indica qual específico BasePart foi clicado, como uma parte dentro de um arrastável Model ; isso é útil para ativar/desativar o detector com base no valor Name , Color , HasTag() daquela parte ou outros detalhes.
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
Função para definir a interatividade do detector.Essa função aceita um parâmetro Player para ativar/desativar o detector para um jogador específico.Ele também recebe um parâmetro part que indica qual específico BasePart foi clicado, como uma parte dentro de um arrastável Model ; isso é útil para ativar/desativar o detector com base no valor Name , Color , HasTag() da parte ou outros detalhes.
Devolução
Eventos
DragContinue
Incêndios quando um usuário continua arrastando o objeto depois que DragStart foi iniciado.
Parâmetros
Se estiver usando um dispositivo de entrada VR, o CFrame da mão que segura o cursor/ponteiro/controlador.
Se o detector de arrasto tiver DragStyle modos primário e secundário de movimento, este parâmetro indica se o usuário está pressionando a entrada modificadora definida através de KeyboardModeSwitchKeyCode , GamepadModeSwitchKeyCode ou VRSwitchKeyCode .
DragEnd
Dispara quando um usuário para de arrastar o Objeto.
Parâmetros
DragStart
Dispara quando um usuário começa a arrastar o Objeto.
Parâmetros
O quadro de acerto do raio de cursor que iniciou o arrastamento.
A parte que foi atingida pelo raio de cursor que iniciou o arrastamento.
Se estiver usando um dispositivo de entrada VR, o CFrame da mão que segura o cursor/ponteiro/controlador.
Se o detector de arrasto tiver DragStyle modos primário e secundário de movimento, este parâmetro indica se o usuário está pressionando a entrada modificadora definida através de KeyboardModeSwitchKeyCode , GamepadModeSwitchKeyCode ou VRSwitchKeyCode .