ClickDetector

Veraltete anzeigen

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

Klickdetektor-Beispiel

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

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)

Zusammenfassung

Eigenschaften

Events

Eigenschaften

CursorIcon

ContentId
Parallel lesen

MaxActivationDistance

Parallel lesen

Methoden

Events

MouseClick

Parameter

playerWhoClicked: Player

MouseHoverEnter

Parameter

playerWhoHovered: Player

Code-Beispiele

Über und außerhalb eines Klickdetektors schweben

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

playerWhoHovered: Player

Code-Beispiele

Über und außerhalb eines Klickdetektors schweben

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

Parameter

playerWhoClicked: Player