ClickDetector
*Dieser Inhalt wurde mit KI (Beta) übersetzt und kann Fehler enthalten. Um diese Seite auf Englisch zu sehen, klicke hier.
Klickdetektor ermöglicht Scripts und LocalScripts 3D-Objekte durch ihre MouseClick -Ereignisse mit Zeiger输入 zu erhalten.Sie arbeiten, wenn sie mit BasePart , Model oder Folder Objekten verbunden sind.Sie erkennen grundlegende Mausereignisse: eingeben, verlassen, Linksklick und klicken.Die Touch-Eingabe auf TouchEnabled Geräten sendet auch Klickereignisse.
Die Standard-Steuerskripte binden ButtonR2 an, um mit ClickDetectors zu interagieren, wobei ContextActionService:BindActivate() auch verwendet werden kann, um dies zu übertreffen.Wenn du Gamepads verwendest, wird der mittlere Punkt MouseHoverEnter und MouseHoverLeave ausgelöst.Die gebundene Aktivierungsschaltfläche feuert MouseClick ab.
MaxActivationDistance kann verwendet werden, um die entfernung zu begrenzen, die ein spieler von einem klickdetektor entfernt sein kann, bevor er nicht mehr anklickbar ist.
ClickDetector Ereignisse feuern sowohl auf dem Client als auch auf dem Server.Da ein LocalScript nur ausgeführt wird, wenn es von einem Player oder Spieler Character absteigt, ist es in der Regel nicht nützlich, ein LocalScript innerhalb eines ClickDetector zu platzieren, da das Skript nicht ausgeführt wird oder das Objekt nicht anklickbar ist.Wenn Sie ein LocalScript benötigen, um ClickDetector Ereignisse zu erkennen, kann StarterPlayerScripts ein besserer Ort sein.
Eingabe priorität
Wenn mehrere ClickDetectors den Benutzereingabe erkennen können, feuern nur die tiefsten Ereignisse ab. Wenn zwei ClickDetectors Geschwister sind, wird das erste die Priorität haben.
Wenn eine Aktion, die mit ContextActionService gebunden ist, die gleiche Eingabe wie eine ClickDetector verwendet, wird die Aktion, die mit ContextActionService gebunden ist, den Vorrang vor den Ereignissen des Klickdetektors haben.
UserInputService.InputBegan wird vor ClickDetector ereignissen abgefeuert.
Code-Beispiele
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.
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).
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)
Zusammenfassung
Eigenschaften
Setzt das Cursor-Symbol so ein, dass es angezeigt wird, wenn die Maus über dem Elternteil dieser ClickDetector oder DragDetector ist.
Maximale Entfernung zwischen einem Charakter und dem ClickDetector oder DragDetector für den Spieler, um damit interagieren zu können.
Ereignisse
Feuert, wenn ein Spieler mit dem Elternteil eines ClickDetector oder DragDetector interagiert.
Feuert, wenn der Elternteil eines ClickDetector oder DragDetector von einem Spieler:inüberfahren wird.
Feuert, wenn der Cursor eines Spieler:invon der Mutter eines ClickDetector oder DragDetector abweicht.
Feuert, wenn ein Spieler mit der rechten Maustaste auf eine ClickDetector oder DragDetector klickt.
Eigenschaften
CursorIcon
Setzt das Cursor-Symbol so ein, dass es angezeigt wird, wenn die Maus über dem Elternteil dieser ClickDetector oder DragDetector ist.Wenn diese Eigenschaft leer gelassen wird, verwendet der Detektor das Standard-Symbol.
Um das Cursor-Symbol zu ändern, legen Sie diese Eigenschaft auf die Asset-ID des Bildes fest, das Sie verwenden möchten.
MaxActivationDistance
Diese Eigenschaft steuert die maximale Entfernung, in Studs, zwischen einem Character und dem ClickDetector oder DragDetector für den Spieler, um mit ihm interagieren zu können.Zum Instanzwäre ein Charakter innerhalb von 10 Klötzen eines ClickDetector oder DragDetector mit einer maximalen Aktivierungsentfernung von 5 nicht in der Lage, den Detektor zu verwenden, weil sie außerhalb der Reichweite sind.
Methoden
Ereignisse
MouseClick
Dieses Ereignis wird entweder von einem Script oder LocalScript ausgelöst, wenn ein Spieler mit einem ClickDetector oder DragDetector über die folgenden Eingänge interagiert:
- Auf Plattformen mit einer Maus, wenn der Spieler die Maus verlassen hat.
- Auf TouchEnabled Plattformen, wenn der Spieler tippt.
- Auf GamepadEnabled Plattformen, wenn der mittlere Punkt über demselben Modell ist und die A -Taste gedrückt und freigelassen wird.
Beachten Sie, dass die Character des Spieler:ininnerhalb des MaxActivationDistance des Detektors sein muss.
Parameter
Der Player , der auf den Eltern eines ClickDetector oder DragDetector geklickt hat.
MouseHoverEnter
Dieses Ereignis wird entweder von einem Script oder LocalScript ausgelöst, wenn der Elternteil eines ClickDetector oder DragDetector von einem Spieler:inüberfahren wird.Dies beinhaltet keine explizite Interaktion mit dem Detektor, für die Sie auf die Ereignisse MouseClick und RightMouseClick hören können.
Aufgrund der Art der Eingabe des Benutzers solltest du nicht von allen MouseHoverEnter-Ereignissen abhängen, die ein entsprechendes MouseHoverLeave-Ereignis auslösen.
Parameter
Die Player die angefangen haben, über dem Elternteil eines ClickDetector oder DragDetector zu schweben.
Code-Beispiele
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.
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
Dieses Ereignis wird entweder von einem Script oder LocalScript ausgelöst, wenn der Cursor eines Spieler:invom Elternteil eines ClickDetector oder DragDetector abweicht.Dies beinhaltet keine explizite Interaktion mit dem Detektor, für die Sie auf die Ereignisse MouseClick und RightMouseClick hören können.
Aufgrund der Art der Eingabe des Benutzers solltest du nicht von allen MouseHoverLeave Ereignissen abhängen, die nach einem entsprechenden MouseHoverEnter Ereignis abgefeuert werden.
Parameter
Die Player deren Cursor sich vom Elternteil eines ClickDetector oder DragDetector entfernt hat.
Code-Beispiele
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.
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
Dieses Ereignis wird entweder von einem Script oder LocalScript ausgelöst, wenn ein Spieler mit der rechten Maustaste auf einen ClickDetector oder DragDetector klickt.Beachten Sie, dass die Character des Spieler:ininnerhalb des MaxActivationDistance des Detektors sein muss.
Parameter
Die Player die mit der rechten Maustaste ihren Mauszeiger auf den Vater eines ClickDetector oder DragDetector klickten.