ClickDetector
*Este conteúdo é traduzido por IA (Beta) e pode conter erros. Para ver a página em inglês, clique aqui.
Detector de Clique permite que Scripts e LocalScripts recebam a entrada de ponteiro em objetos 3D através de seu evento MouseClick.Eles funcionam quando parentados a BasePart , Model ou Folder objetos.Eles detectam eventos básicos do mouse: inserir/digitar, sair, clicar para a esquerda e clicar para a direita.A entrada de toque em TouchEnabled dispositivos também dispara eventos de clique.
Os scripts de controle padrão vinculam ButtonR2 a interagir com ClickDetectors usando ContextActionService:BindActivate(), que também pode ser usado para substituir isso.Ao usar gamepads, o ponto central aciona MouseHoverEnter e MouseHoverLeave .O botão de ativação vinculado dispara MouseClick .
MaxActivationDistance pode ser usado para limitar a distância que um jogador pode estar de um detector de cliques antes que não seja mais clicável.
ClickDetector eventos de fogo ocorrem tanto no cliente quanto no servidor.Como um LocalScript só será executado se descender de um Player ou jogador Character, geralmente não é útil colocar um LocalScript dentro de um ClickDetector, pois o script não será executado ou o objeto não será clicável.Se você precisar de um LocalScript para detectar ClickDetector eventos, StarterPlayerScripts pode ser um lugar melhor em vez disso.
Prioridade de entrada
Se vários ClickDetectors detectarem a entrada do usuário, apenas o mais profundo disparará eventos. Se dois ClickDetectors forem irmãos, o primeiro terá prioridade.
Se uma ação vinculada com ContextActionService usa o mesmo input de um ClickDetector, a ação vinculada com ContextActionService terá prioridade sobre os eventos do detector de cliques.
UserInputService.InputBegan vai disparar antes de ClickDetector eventos.
Amostras de código
Coloque este código dentro de um Script dentro de um ClickDetector .O exemplo de código cria uma referência ao pai e define uma função para mostrar uma mensagem que saúda um jogador.Finalmente, conecta o evento MouseClick ao evento definido à função definida.
local clickDetector = script.Parent
local function onClicked(player)
-- Mostrar uma mensagem para o jogador
local msg = Instance.new("Message")
msg.Parent = player:FindFirstChild("PlayerGui")
msg.Text = "Hello, " .. player.Name
wait(2.5)
msg:Destroy()
end
-- Conecte a função ao evento MouseClick
clickDetector.MouseClick:Connect(onClicked)
This code sample will allow a part to be clicked to toggle its anchored property. When toggled, the visual appearance of the part is updated (red means anchored, yellow means free).
local part = script.Parent
-- Create a ClickDetector so we can tell when the part is clicked
local cd = Instance.new("ClickDetector", part)
-- This function updates how the part looks based on its Anchored state
local function updateVisuals()
if part.Anchored then
-- When the part is anchored...
part.BrickColor = BrickColor.new("Bright red")
part.Material = Enum.Material.DiamondPlate
else
-- When the part is unanchored...
part.BrickColor = BrickColor.new("Bright yellow")
part.Material = Enum.Material.Wood
end
end
local function onToggle()
-- Toggle the anchored property
part.Anchored = not part.Anchored
-- Update visual state of the brick
updateVisuals()
end
-- Update, then start listening for clicks
updateVisuals()
cd.MouseClick:Connect(onToggle)
Resumo
Propriedades
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.
Eventos
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
CursorIcon
MaxActivationDistance
Métodos
Eventos
MouseHoverEnter
Parâmetros
Amostras de código
local clickDetector = script.Parent:FindFirstChildOfClass("ClickDetector")
clickDetector.MouseHoverEnter:Connect(function(player)
print(player.Name .. " hovered over my parent!")
end)
clickDetector.MouseHoverLeave:Connect(function(player)
print(player.Name .. " hovered off my parent!")
end)
MouseHoverLeave
Parâmetros
Amostras de código
local clickDetector = script.Parent:FindFirstChildOfClass("ClickDetector")
clickDetector.MouseHoverEnter:Connect(function(player)
print(player.Name .. " hovered over my parent!")
end)
clickDetector.MouseHoverLeave:Connect(function(player)
print(player.Name .. " hovered off my parent!")
end)