ClickDetector

Afficher les obsolètes

*Ce contenu est traduit en utilisant l'IA (Beta) et peut contenir des erreurs. Pour consulter cette page en anglais, clique ici.

Détecteur de clics permet à Scripts et LocalScripts de recevoir l'entrée pointeur sur les objets 3D via leur événement MouseClick.Ils fonctionnent lorsqu'ils sont parentés à BasePart , Model , ou Folder objets.Ils détectent les événements de souris basiques : saisir, quitter, cliquer gauche et cliquer droit.L'entrée tactile sur les appareils TouchEnabled lance également des événements de clic.

Les scripts de contrôle par défaut se lient à ButtonR2 pour interagir avec ClickDetectors en utilisant ContextActionService:BindActivate(), qui peut également être utilisé pour l'annuler.Lors de l'utilisation de manettes, le point central déclenche MouseHoverEnter et MouseHoverLeave .Le bouton d'activation lié lance MouseClick .

MaxActivationDistance peut être utilisé pour limiter la distance qu'un joueur peut être d'un détecteur de clics avant qu'il ne soit plus cliquable.

ClickDetector les événements se déclenhent sur le client et le serveur.Comme un LocalScript ne s'exécutera que s'il descend d'un Player ou d'un joueur Character, il n'est généralement pas utile de mettre un LocalScript à l'intérieur d'un ClickDetector, car le script ne s'exécutera pas ou l'objet ne sera pas cliquable.Si vous avez besoin d'un LocalScript pour détecter ClickDetector événements, StarterPlayerScripts peut être un meilleur endroit à la place.

Priorité d'entrée

Si plusieurs ClickDetectors peuvent détecter l'entrée de l'utilisateur, seul le plus profond déclenchera des événements. Si deux ClickDetectors sont des frères et sœurs, le premier aura la priorité.

Si une action liée à ContextActionService utilise le même entrée qu'une action liée à ClickDetector, l'action liée à ContextActionService prendra la priorité sur les événements du détecteur de clics.

UserInputService.InputBegan se déclenchera avant ClickDetector événements.

Échantillons de code

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)

Résumé

Propriétés

Évènements

Propriétés

CursorIcon

ContentId
Lecture parallèle

Définit l'icône du curseur à afficher lorsque la souris se trouve au-dessus du parent de ce ClickDetector ou DragDetector .Si cette propriété est laissée vide, le détecteur utilisera l'icône par défaut.

Pour changer l'icône du curseur, définissez cette propriété sur l'ID de la ressource de l'image que vous souhaitez utiliser.

MaxActivationDistance

Lecture parallèle

Cette propriété contrôle la distance maximale, en studs, entre un Character et le ClickDetector ou DragDetector pour que le joueur puisse interagir avec.Par instance, un personnage à moins de 10 studs d'un ClickDetector ou DragDetector avec une distance d'activation maximale de 5 ne pourrait pas utiliser le détecteur car ils sont hors de portée.

Méthodes

Évènements

MouseClick

Cet événement se déclenche à partir d'un Script ou LocalScript lorsqu'un joueur interagit avec un ClickDetector ou DragDetector via les entrées suivantes :

  • Sur les plateformes avec une souris, lorsque le joueur a quitté les clics de souris.
  • Sur les plates-formes TouchEnabled, lorsque le joueur appuie.
  • Sur les plates-formes GamepadEnabled, lorsque le point du centre est au-dessus du même modèle et que le bouton A est pressé et relâché.

Notez que le Character du joueur doit être dans le MaxActivationDistance du détecteur.

Paramètres

playerWhoClicked: Player

Le Player qui a cliqué sur le parent d'un ClickDetector ou DragDetector .


MouseHoverEnter

Cet événement se déclenche à partir d'un Script ou LocalScript lorsque le parent d'un ClickDetector ou DragDetector est survolé par un joueur.Cela ne nécessite pas d'interaction explicite avec le détecteur, pour lequel vous pouvez écouter les événements MouseClick et RightMouseClick.

En raison de la nature de l'entrée de l'utilisateur, vous ne devriez pas dépendre de tous les événements MouseHoverEnter qui déclenchent un événement correspondant MouseHoverLeave.

Paramètres

playerWhoHovered: Player

Le Player qui a commencé à planer sur le parent d'un ClickDetector ou DragDetector .


Échantillons de code

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

Cet événement se déclenche à partir d'un Script ou LocalScript lorsque le curseur d'un joueur se déplace hors du parent d'un ClickDetector ou DragDetector .Cela ne nécessite pas d'interaction explicite avec le détecteur, pour lequel vous pouvez écouter les événements MouseClick et RightMouseClick.

En raison de la nature de l'entrée de l'utilisateur, vous ne devriez pas dépendre de tous les événements MouseHoverLeave tirés après un événement correspondant MouseHoverEnter.

Paramètres

playerWhoHovered: Player

Le Player dont le curseur s'est déplacé hors du parent d'un ClickDetector ou DragDetector .


Échantillons de code

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

Cet événement se déclenche à partir d'un Script ou LocalScript lorsqu'un joueur fait un clic droit sur leur curseur de souris sur un ClickDetector ou DragDetector .Notez que les Character du joueur doivent être dans le MaxActivationDistance du détecteur.

Paramètres

playerWhoClicked: Player

Le Player qui a cliqué avec le bouton droit de la souris sur le parent d'un ClickDetector ou DragDetector .