ClickDetector
*Ta zawartość została przetłumaczona przy użyciu narzędzi AI (w wersji beta) i może zawierać błędy. Aby wyświetlić tę stronę w języku angielskim, kliknij tutaj.
Detektor klik pozwala Scripts i LocalScripts otrzymywać wskazanie na obiekty 3D za pośrednictwem ich wydarzenia MouseClick.Funkcjonują, gdy są przypisane do BasePart , Model lub Folder obiektów rodzicielskich.Wykrywają podstawowe zdarzenia myszy: opuszczać, wprowadzać, lewy klik i prawy klikać.Wejście dotykowe na urządzeniach TouchEnabled również uruchamia zdarzenia kliknięć.
Domyślne skrypty kontroli wiążą ButtonR2 z interakcją z ClickDetectors za pomocą ContextActionService:BindActivate(), które można również użyć do ich anulowania.Podczas używania gamepadów punkt środkowy uruchamia MouseHoverEnter i MouseHoverLeave.Przycisk aktywacji przypięty strzela MouseClick .
MaxActivationDistance można użyć, aby ograniczyć odległość, z jakiej gracz może być od detektora kliknięć, zanim nie będzie już można go kliknąć.
ClickDetector zdarzenia ognia na obu klientach i serwerach.Ponieważ LocalScript będzie uruchomione tylko wtedy, gdy pochodzi z Player lub graczem Character, zwykle nie jest użyteczne umieszczenie LocalScript wewnątrz ClickDetector, ponieważ skrypt nie zostanie uruchomiony lub obiekt nie będzie klikalny.Jeśli potrzebujesz LocalScript do wykrycia wydarzeń ClickDetector, StarterPlayerScripts może być lepszym miejscem zamiast tego.
Priorytet wejścia
Jeśli wiele ClickDetectors może wykryć wejście użytkownika, tylko najgłębsze będzie strzelać zdarzenia. Jeśli dwa ClickDetectors są siostrami, pierwszy będzie miał pierwszeństwo.
Jeśli akcja wiązana z ContextActionService używa tego samego wejścia, co akcja wiązana z ClickDetector, akcja wiązana z ContextActionService będzie miała pierwszeństwo nad wydarzeniami detektora kliknięć.
UserInputService.InputBegan będzie strzelać przed ClickDetector wydarzeniami.
Przykłady kodu
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)
Podsumowanie
Właściwości
Ustawia ikonę kurora do wyświetlenia, gdy mysz jest przewijana nad rodzicem tego ClickDetector lub DragDetector.
Maksymalna odległość między postacią a ClickDetector lub DragDetector dla gracza, aby mógł z nią interakować.
Zdarzenia
Wystrzeliwuje, gdy gracz interakuje z rodzicem ClickDetector lub DragDetector .
Wystrzeliwuje się, gdy rodzic ClickDetector lub DragDetector zostanie pokryty przez gracza.
Wystrzeliwuje, gdy kurser gracza odpływa od rodzica ClickDetector lub DragDetector.
Wystrzeliwuje, gdy gracz kliknie prawym przyciskiem myszy na kursoрze na ClickDetector lub DragDetector.
Właściwości
CursorIcon
Ustawia ikonę kurora do wyświetlenia, gdy mysz jest przewijana nad rodzicem tego ClickDetector lub DragDetector.Jeśli ta właściwość pozostanie pusta, detektor użyje domyślnego ikona.
Aby zmienić ikonakurora, ustaw tę właściwość na ID zasobu obrazu, który chcesz użyć.
MaxActivationDistance
Właściwość ta kontroluje maksymalną odległość, w szpilkach, między Character a ClickDetector lub DragDetector dla gracza, aby mógł z nią interakować.Na instancja, postać w odległości 10 metrów od ClickDetector lub DragDetector z maksymalną odległością aktywacji 5 nie będzie w stanie używać detektora, ponieważ jest poza zasięgiem.
Metody
Zdarzenia
MouseClick
To wydarzenie wystrzeliwuje z Script lub LocalScript gdy gracz wchodzi w interakcję z ClickDetector lub DragDetector za pomocą następujących wejść:
- Na platformach z myszą, gdy gracz opuścił kliknięcia myszy.
- Na platformach TouchEnabled, gdy gracz dotknie.
- Na platformach GamepadEnabled gdy punkt środkowy jest nad tym samym modelem, a przycisk A jest naciśnięty i uwolniony.
Zauważ, że Character gracza musi znajdować się w MaxActivationDistance detektora.
Parametry
Ten, który kliknął na rodzica Player lub ClickDetector lub DragDetector.
MouseHoverEnter
To wydarzenie wystrzeliwuje z Script lub LocalScript gdy rodzic ClickDetector lub DragDetector jest przewijany przez gracza.Nie oznacza to wyraźnej interakcji z detektorem, do której możesz słuchać wydarzeń MouseClick i RightMouseClick.
Ze względu na naturę wpisu użytkownika nie powinieneś polegać na wszystkich MouseHoverEnter wydarzeniach wystrzeliwujących odpowiednie wydarzenie MouseHoverLeave.
Parametry
Ten Player , który zaczął przesuwać się nad rodzicem ClickDetector lub DragDetector.
Przykłady kodu
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
To wydarzenie wystrzeliwuje z dowolnego Script lub LocalScript miejsca, gdy kurser gracza przemija nad rodzicem ClickDetector lub DragDetector.Nie oznacza to wyraźnej interakcji z detektorem, do której możesz słuchać wydarzeń MouseClick i RightMouseClick.
Ze względu na naturę wpisu użytkownika nie powinieneś polegać na wszystkich MouseHoverLeave wydarzeniach wystrzeliwanych po odpowiednim MouseHoverEnter wydarzeniu.
Parametry
The Player którego kurser przesunął się z poza rodzica ClickDetector lub DragDetector .
Przykłady kodu
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
To wydarzenie wystrzeliwuje zarówno z Script lub LocalScript gdy gracz prawym kliknięciem myszy kliknie na kurzorze na ClickDetector lub DragDetector.Zauważ, że Character gracza musi znajdować się w MaxActivationDistance detektora.
Parametry
Ten, który prawym przyciskiem myszy kliknął kursoр na rodzica lub .