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
Platziere diesen Code innerhalb eines Script innerhalb eines ClickDetector.Das Codebeispiel erstellt eine Referenz zum Eltern und definiert eine Funktion, um eine Nachricht anzuzeigen, die einen Spieler begrüßt.Schließlich verbindet es das MouseClick-Ereignis mit der definierten Funktion.
local clickDetector = script.Parent
local function onClicked(player)
-- Zeige der Spieler eine Nachricht
local msg = Instance.new("Message")
msg.Parent = player:FindFirstChild("PlayerGui")
msg.Text = "Hello, " .. player.Name
wait(2.5)
msg:Destroy()
end
-- Verbinden Sie die Funktion mit dem Mausklick-Ereignis
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.
Events
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
MaxActivationDistance
Methoden
Events
MouseHoverEnter
Parameter
Code-Beispiele
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
Parameter
Code-Beispiele
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)