ClickDetector

Mostrar obsoleto

*Este contenido se traduce usando la IA (Beta) y puede contener errores. Para ver esta página en inglés, haz clic en aquí.

ClickDetector permite que Scripts y LocalScripts reciban la entrada de puntería en objetos 3D a través de su evento MouseClick.Funcionan cuando se asignan a BasePart , Model , o Folder objetos.Detectan eventos básicos del ratón: introducir, salir, hacer clic izquierdo y hacer hcer clicderecho.La entrada táctil en TouchEnabled.

Los scripts de control predeterminados se vinculan ButtonR2 a interactuar con ClickDetectors usando ContextActionService:BindActivate(), que también se puede usar para anular esto.Al usar gamepads, el punto central desencadena MouseHoverEnter y MouseHoverLeave .El botón de activación vinculado dispara MouseClick .

MaxActivationDistance se puede usar para limitar la distancia que un jugador puede estar de un detector de clics antes de que ya no sea clicable.

ClickDetector eventos de fuego en el cliente y en el servidor.Dado que un LocalScript solo se ejecutará si desciende de un Player o jugador Character , generalmente no es útil poner un LocalScript dentro de un ClickDetector , ya que el script no se ejecutará o el objeto no será clicable.Si necesita un LocalScript para detectar eventos ClickDetector, StarterPlayerScripts puede ser un mejor lugar en su lugar.

Prioridad de entrada

Si múltiples ClickDetectors pueden detectar la entrada del usuario, solo el más profundo disparará eventos. Si dos ClickDetectors son hermanos, el primero tendrá prioridad.

Si una acción vinculada con ContextActionService usa la misma entrada que una ClickDetector , la acción vinculada con ContextActionService tendrá prioridad sobre los eventos del detector de clics.

UserInputService.InputBegan disparará antes de ClickDetector eventos.

Muestras de código

Place this code inside a Script inside a ClickDetector. The code sample creates a reference to the parent and defines a function to show a message that greets a player. Finally, it connects the MouseClick event to the defined function.

ClickDetector Example

local clickDetector = script.Parent
local function onClicked(player)
-- Show a message to the player
local msg = Instance.new("Message")
msg.Parent = player:FindFirstChild("PlayerGui")
msg.Text = "Hello, " .. player.Name
wait(2.5)
msg:Destroy()
end
-- Connect the function to the MouseClick event
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)

Resumen

Propiedades

Eventos

Propiedades

CursorIcon

ContentId
Leer paralelo

Establece el icono del cursor para mostrar cuando el mouse se desplaza sobre el padre de este ClickDetector o DragDetector .Si esta propiedad se deja en blanco, el detector usará el íconopredeterminado.

Para cambiar el íconodel cursor, establece esta propiedad en el ID de activo de la imagen que te gustaría usar.

MaxActivationDistance

Leer paralelo

Esta propiedad controla la distancia máxima, en studs, entre un Character y el ClickDetector o DragDetector para que el jugador pueda interactuar con él.Por instancia, un personaje dentro de 10 metros de un ClickDetector o DragDetector con una distancia de activación máxima de 5 no podría usar el detector porque está fuera de rango.

Métodos

Eventos

MouseClick

Este evento se dispara desde un Script o LocalScript cuando un jugador interactúa con un ClickDetector o DragDetector a través de los siguientes inputs:

  • En las plataformas con un ratón, cuando el jugador dejó clics de mouse.
  • En TouchEnabled plataformas, cuando el jugador toca.
  • En GamepadEnabled plataformas, cuando el punto central está sobre el mismo modelo y se presiona y libera el botón A .

Tenga en cuenta que el Character del jugador debe estar dentro del MaxActivationDistance del detector.

Parámetros

playerWhoClicked: Player

El Player que hizo clic en el padre de un ClickDetector o DragDetector .


MouseHoverEnter

Este evento se dispara desde un Script o LocalScript cuando el padre de un ClickDetector o DragDetector es sobrevolado por un jugador.Esto no implica una interacción explícita con el detector, para la cual puedes escuchar los eventos MouseClick y RightMouseClick.

Debido a la naturaleza de la entrada del usuario, no deberías depender de todos los eventos MouseHoverEnter que disparan un evento correspondiente MouseHoverLeave.

Parámetros

playerWhoHovered: Player

El Player que comenzó a pasar el mouse sobre el padre de un ClickDetector o DragDetector .


Muestras de código

The following code will print "[PlayerName] hovered over my parent!" when a player's cursor hovers over the ClickDetector parent. It will also print "[PlayerName] hovered off my parent!" when the player's cursor moves off the ClickDetector parent.

In order for this example to work as expected, it must be placed in a Script or LocalScript whose parent is a ClickDetector.

Hovering Over and Off a ClickDetector

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

Este evento se dispara desde un Script o LocalScript cuando el cursor de un jugador se desplaza fuera del padre de un ClickDetector o DragDetector .Esto no implica una interacción explícita con el detector, para la cual puedes escuchar los eventos MouseClick y RightMouseClick.

Debido a la naturaleza de la entrada del usuario, no deberías depender de todos los eventos MouseHoverLeave que se disparan después de un evento correspondiente MouseHoverEnter.

Parámetros

playerWhoHovered: Player

El Player cuyo cursor se desplazó fuera del padre de un ClickDetector o DragDetector .


Muestras de código

The following code will print "[PlayerName] hovered over my parent!" when a player's cursor hovers over the ClickDetector parent. It will also print "[PlayerName] hovered off my parent!" when the player's cursor moves off the ClickDetector parent.

In order for this example to work as expected, it must be placed in a Script or LocalScript whose parent is a ClickDetector.

Hovering Over and Off a ClickDetector

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

Este evento se dispara desde un Script o LocalScript cuando un jugador hace clic derecho con el mouse en el cursor en un ClickDetector o DragDetector .Tenga en cuenta que la Character del jugador debe estar dentro del MaxActivationDistance del detector.

Parámetros

playerWhoClicked: Player

El Player que hizo clic derecho con el cursor de su mouse en el padre de un ClickDetector o DragDetector .