ClickDetector

Mostrar obsoleto

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

Exemplo de Detector de Clique

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

Part Anchored Toggle

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

Eventos

Propriedades

CursorIcon

ContentId
Ler Parallel

MaxActivationDistance

Ler Parallel

Métodos

Eventos

MouseClick

Parâmetros

playerWhoClicked: Player

MouseHoverEnter

Parâmetros

playerWhoHovered: Player

Amostras de código

Passe o mouse sobre e desligue um Detector de Clique

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

playerWhoHovered: Player

Amostras de código

Passe o mouse sobre e desligue um Detector de Clique

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)

RightMouseClick

Parâmetros

playerWhoClicked: Player