클릭 탐지기 는 3D 개체에 대한 포인터 입력을 받도록 Scripts 및 LocalScripts를 허용합니다. 이 이벤트를 통해 MouseClick부모로 지정되면 BasePart , Model 또는 Folder 개체에서 작동합니다.기본 마우스 이벤트를 감지합니다: 입력, 종료, 왼쪽 클릭 및 오른쪽 클릭.TouchEnabled 장치의 터치 입력도 클릭 이벤트를 발생시킵니다.
기본 제어 스크립트는 ButtonR2 를 사용하여 ClickDetectors 와 상호작용하고 ContextActionService:BindActivate() 를 사용하여 이를 재정의할 수도 있습니다.게임패드를 사용할 때 중앙 점이 MouseHoverEnter 및 MouseHoverLeave을 트리거합니다.바인딩된 활성화 버튼은 MouseClick 을 발사합니다.
MaxActivationDistance 플레이어가 더 이상 클릭할 수 없게 되기 전에 플레이어가 클릭 탐지기에서 멀리 있을 수 있는 거리를 제한하는 데 사용할 수 있습니다.
ClickDetector 클라이언트와 서버 모두에서 이벤트가 발생합니다.Since a 는 스크립트가 실행되지 않거나 개체가 클릭할 수 없는 경우에만 실행되므로, 스크립트가 실행되지 않거나 개체가 클릭할 수 없는 경우 내부에 를 넣는 것은 일반적으로 유용하지 않습니다.이벤트 ClickDetector 를 감지하기 위해 LocalScript 가 필요한 경우, StarterPlayerScripts 가 대신 더 나은 장소가 될 수 있습니다.
입력 우선 순위
여러 개의 ClickDetectors가 사용자 입력을 감지할 수 있는 경우, 가장 깊은 것만 이벤트를 발생시킵니다. 두 개의 ClickDetectors가 형제인 경우, 첫 번째가 우선 순위를 가집니다.
ContextActionService에 바인딩된 액션이 ClickDetector와 동일한 입력을 사용하는 경우, ContextActionService에 바인딩된 액션은 클릭 감지기의 이벤트보다 우선합니다.
UserInputService.InputBegan 이벤트가 발생하기 전에 ClickDetector 이벤트가 발생합니다.
코드 샘플
이 코드를 Script 내에 있는 ClickDetector 내에 배치하십시오.코드 샘플은 부모에 대한 참조를 만들고 플레이어를 인사하는 메시지를 표시하는 함수를 정의합니다.마지막으로, MouseClick 이벤트를 정의된 함수에 연결합니다.
local clickDetector = script.Parent
local function onClicked(player)
-- 플레이어에게 메시지 표시
local msg = Instance.new("Message")
msg.Parent = player:FindFirstChild("PlayerGui")
msg.Text = "Hello, " .. player.Name
wait(2.5)
msg:Destroy()
end
-- 함수를 MouseClick 이벤트에 연결
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)
요약
속성
마우스가 이 ClickDetector 또는 DragDetector 의 부모에 놓일 때 커서 아이콘을 표시하도록 설정합니다.
캐릭터와 ClickDetector 또는 DragDetector 사이의 최대 거리는 플레이어가 상호 작용할 수 있도록 합니다.
이벤트
플레이어가 ClickDetector 또는 DragDetector의 부모와 상호작용할 때 발생합니다.
부모의 ClickDetector 또는 DragDetector 가 플레이어에 의해 덮여 있을 때 발생하는 화재
플레이어의 커서가 ClickDetector 또는 DragDetector의 부모에서 떨어지면 발생합니다.
플레이어가 마우스 커서를 ClickDetector 또는 DragDetector 클릭하면 발생합니다.
속성
CursorIcon
마우스가 이 ClickDetector 또는 DragDetector 의 부모에 놓일 때 커서 아이콘을 표시하도록 설정합니다.이 속성이 비어 있으면 검색기가 기본 아이콘을 사용합니다.
커서 아이콘을 변경하려면 이 속성을 사용하려는 이미지의 자산 ID로 설정합니다.
MaxActivationDistance
이 속성은 스터드 단위의 최대 거리를 제어하여 플레이어가 상호 작용할 수 있도록 합니다. Character 와 ClickDetector 또는 DragDetector 사이의 최대 거리.예를 인스턴스, 최대 활성화 거리가 5인 ClickDetector 또는 DragDetector 의 10스터드 내 캐릭터는 범위를 벗어났기 때문에 검출기를 사용할 수 없습니다.
메서드
이벤트
MouseClick
이 이벤트는 플레이어가 다음 입력을 통해 Script 또는 LocalScript 와 상호작용할 때 발생합니다: ClickDetector 또는 DragDetector 을 통해
- 마우스가 있는 플랫폼에서 플레이어가 마우스 클릭을 중단했을 때.
- On TouchEnabled 플랫폼에서 플레이어가 탭할 때.
- On GamepadEnabled 플랫폼에서 센터 도트가 동일한 모델 위에 있고 A 버튼이 누르고 릴리스되면
플레이어의 Character 가 검출기의 MaxActivationDistance 내에 있어야 한다는 점에 유의하십시오.
매개 변수
부모의 Player 또는 ClickDetector 또는 DragDetector 을 클릭한 사람.
MouseHoverEnter
이 이벤트는 부모의 Script 또는 LocalScript 가 플레이어에 의해 덮여지면 발생하며, 부모의 ClickDetector 또는 DragDetector 가 플레이어에 의해 덮여지면 발생합니다.이는 검출기와의 명시적 상호 작용을 수행하지 않으며, MouseClick 및 RightMouseClick 이벤트를 수신할 수 있습니다.
사용자 입력의 특성으로 인해 해당 이벤트를 발생시키는 모든 이벤트에 의존해서는 안 됩니다.
매개 변수
부모의 위에 호버링을 시작한 Player 또는 ClickDetector 또는 DragDetector 의 부모에 호버링을 시작한 사람.
코드 샘플
다음 코드는 플레이어의 커서가 부모에 닿았을 때 "[PlayerName]가 내 부모 위로 호버했습니다!"를 출력합니다. when a player's cursor hovers over the ClickDetector parent.플레이어의 커서가 부모에서 떨어지면 "[PlayerName]가 내 부모에서 제거되었습니다!"라고 출력할 것입니다. when the player's cursor moves off the ClickDetector parent.
이 예제가 예상대로 작동하려면 부모가 Script 또는 LocalScript 인 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
이 이벤트는 플레이어의 커서가 부모의 또는 에서 떨어질 때 또는 의 부모에서 발사됩니다.이는 검출기와의 명시적 상호 작용을 수행하지 않으며, MouseClick 및 RightMouseClick 이벤트를 수신할 수 있습니다.
사용자 입력의 특성으로 인해 해당 이벤트 후에 발생하는 모든 이벤트에 의존해서는 안 됩니다.
매개 변수
커서가 부모의 Player 또는 ClickDetector 또는 DragDetector 에서 떨어진 것으로 설정된 또는 의 자식입니다.
코드 샘플
다음 코드는 플레이어의 커서가 부모에 닿았을 때 "[PlayerName]가 내 부모 위로 호버했습니다!"를 출력합니다. when a player's cursor hovers over the ClickDetector parent.플레이어의 커서가 부모에서 떨어지면 "[PlayerName]가 내 부모에서 제거되었습니다!"라고 출력할 것입니다. when the player's cursor moves off the ClickDetector parent.
이 예제가 예상대로 작동하려면 부모가 Script 또는 LocalScript 인 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
이 이벤트는 플레이어가 마우스 커서를 Script 또는 LocalScript 클릭할 때 Class.ClickDetector``Class.DragDetector 발생합니다.플레이어의 Character 가 검출기의 MaxActivationDistance 내에 있어야 한다는 점에 유의하십시오.
매개 변수
The Player 누가 마우스 커서를 부모의 ClickDetector 또는 DragDetector 에 오른쪽 클릭했는지.