DragDetector

Mostrar obsoleto

*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

Propriedades herdados de ClickDetector

Métodos

Eventos

Eventos herdados de ClickDetector

Propriedades

ActivatedCursorIcon

ContentId
Ler Parallel

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

Ler Parallel

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.

Não replicado
Ler Parallel

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

Ler Parallel

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.

Ler Parallel

O paradigma usado para gerar a proposta de movimento, dado um fluxo de raios de cursor. Veja Enum.DragDetectorDragStyle para opções.

Enabled

Ler Parallel

Se verdadeiro, o DragDetector responde à entrada do usuário; se falso, não o faz.

GamepadModeSwitchKeyCode

Ler Parallel

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

Ler Parallel

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

Ler Parallel

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

Ler Parallel

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

Ler Parallel

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

Ler Parallel

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

Ler Parallel

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

Ler Parallel

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

Ler Parallel

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.

Ler Parallel

Controla o nível de permissão para o qual os jogadores podem interagir com o DragDetector. O padrão é Enum.DragDetectorPermissionPolicy.Everybody.

ReferenceInstance

Ler Parallel

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.

Ler Parallel

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

Ler Parallel

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

Ler Parallel

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

Não replicado
Ler Parallel

O eixo secundário da movimentação. Relaciona-se à orientação usando o mesmo paradigma que Attachments .

TrackballRadialPullFactor

Ler Parallel

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

Ler Parallel

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

Ler Parallel

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

Não replicado
Ler Parallel

O Axis expresso no espaço mundial. Relaciona-se à orientação usando o mesmo paradigma que Attachments .

WorldSecondaryAxis

Não replicado
Ler Parallel

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

priority: number

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.

Valor Padrão: ""
function: function

Função para modificar ou restringir a movimentação proposta.Essa função recebe uma entrada CFrame de proposta de movimento e retorna um CFrame de modificado ou não modificado movimento, ambos relativos ao quadro de referência.

Valor Padrão: ""

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

A referência CFrame na qual a movimentação é expressa.

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

function: function

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.

Valor Padrão: ""

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

function: function

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.

Valor Padrão: ""

Devolução

()

Eventos

DragContinue

Incêndios quando um usuário continua arrastando o objeto depois que DragStart foi iniciado.

Parâmetros

playerWhoDragged: Player

O Player que iniciou o arrastamento através de DragStart e agora está continuando o arrastamento.

cursorRay: Ray

Ray emanando do cursor, direcionado para a cena.

viewFrame: CFrame

CFrame da do usuário Camera.

vrInputFrame: OptionalCoordinateFrame

Se estiver usando um dispositivo de entrada VR, o CFrame da mão que segura o cursor/ponteiro/controlador.

isModeSwitchKeyDown: boolean

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

playerWhoDragged: Player

O Player que iniciou o arrastamento através de DragStart e agora terminou (liberado) o arrastamento.


DragStart

Dispara quando um usuário começa a arrastar o Objeto.

Parâmetros

playerWhoDragged: Player

Player quem iniciou o arrastamento.

cursorRay: Ray

Ray emanando do cursor, direcionado para a cena.

viewFrame: CFrame

CFrame da do usuário Camera.

hitFrame: CFrame

O quadro de acerto do raio de cursor que iniciou o arrastamento.

clickedPart: BasePart

A parte que foi atingida pelo raio de cursor que iniciou o arrastamento.

vrInputFrame: OptionalCoordinateFrame

Se estiver usando um dispositivo de entrada VR, o CFrame da mão que segura o cursor/ponteiro/controlador.

isModeSwitchKeyDown: boolean

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 .