ClickDetector

사용되지 않는 항목 표시

*이 콘텐츠는 AI(베타)를 사용해 번역되었으며, 오류가 있을 수 있습니다. 이 페이지를 영어로 보려면 여기를 클릭하세요.

클릭 탐지기 는 3D 개체에 대한 포인터 입력을 받도록 ScriptsLocalScripts를 허용합니다. 이 이벤트를 통해 MouseClick부모로 지정되면 BasePart , Model 또는 Folder 개체에서 작동합니다.기본 마우스 이벤트를 감지합니다: 입력, 종료, 왼쪽 클릭 및 오른쪽 클릭.TouchEnabled 장치의 터치 입력도 클릭 이벤트를 발생시킵니다.

기본 제어 스크립트는 ButtonR2 를 사용하여 ClickDetectors 와 상호작용하고 ContextActionService:BindActivate() 를 사용하여 이를 재정의할 수도 있습니다.게임패드를 사용할 때 중앙 점이 MouseHoverEnterMouseHoverLeave을 트리거합니다.바인딩된 활성화 버튼은 MouseClick 을 발사합니다.

MaxActivationDistance 플레이어가 더 이상 클릭할 수 없게 되기 전에 플레이어가 클릭 탐지기에서 멀리 있을 수 있는 거리를 제한하는 데 사용할 수 있습니다.

ClickDetector 클라이언트와 서버 모두에서 이벤트가 발생합니다.Since a 는 스크립트가 실행되지 않거나 개체가 클릭할 수 없는 경우에만 실행되므로, 스크립트가 실행되지 않거나 개체가 클릭할 수 없는 경우 내부에 를 넣는 것은 일반적으로 유용하지 않습니다.이벤트 ClickDetector 를 감지하기 위해 LocalScript 가 필요한 경우, StarterPlayerScripts 가 대신 더 나은 장소가 될 수 있습니다.

입력 우선 순위

여러 개의 ClickDetectors가 사용자 입력을 감지할 수 있는 경우, 가장 깊은 것만 이벤트를 발생시킵니다. 두 개의 ClickDetectors가 형제인 경우, 첫 번째가 우선 순위를 가집니다.

ContextActionService에 바인딩된 액션이 ClickDetector와 동일한 입력을 사용하는 경우, ContextActionService에 바인딩된 액션은 클릭 감지기의 이벤트보다 우선합니다.

UserInputService.InputBegan 이벤트가 발생하기 전에 ClickDetector 이벤트가 발생합니다.

코드 샘플

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.

ClickDetector Example

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

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)

요약

속성

이벤트

속성

CursorIcon

ContentId
병렬 읽기

마우스가 이 ClickDetector 또는 DragDetector 의 부모에 놓일 때 커서 아이콘을 표시하도록 설정합니다.이 속성이 비어 있으면 검색기가 기본 아이콘을 사용합니다.

커서 아이콘을 변경하려면 이 속성을 사용하려는 이미지의 자산 ID로 설정합니다.

MaxActivationDistance

병렬 읽기

이 속성은 스터드 단위의 최대 거리를 제어하여 플레이어가 상호 작용할 수 있도록 합니다. CharacterClickDetector 또는 DragDetector 사이의 최대 거리.예를 인스턴스, 최대 활성화 거리가 5인 ClickDetector 또는 DragDetector 의 10스터드 내 캐릭터는 범위를 벗어났기 때문에 검출기를 사용할 수 없습니다.

메서드

이벤트

MouseClick

이 이벤트는 플레이어가 다음 입력을 통해 Script 또는 LocalScript 와 상호작용할 때 발생합니다: ClickDetector 또는 DragDetector 을 통해

  • 마우스가 있는 플랫폼에서 플레이어가 마우스 클릭을 중단했을 때.
  • On TouchEnabled 플랫폼에서 플레이어가 탭할 때.
  • On GamepadEnabled 플랫폼에서 센터 도트가 동일한 모델 위에 있고 A 버튼이 누르고 릴리스되면

플레이어의 Character 가 검출기의 MaxActivationDistance 내에 있어야 한다는 점에 유의하십시오.

매개 변수

playerWhoClicked: Player

부모의 Player 또는 ClickDetector 또는 DragDetector 을 클릭한 사람.


MouseHoverEnter

이 이벤트는 부모의 Script 또는 LocalScript 가 플레이어에 의해 덮여지면 발생하며, 부모의 ClickDetector 또는 DragDetector 가 플레이어에 의해 덮여지면 발생합니다.이는 검출기와의 명시적 상호 작용을 수행하지 않으며, MouseClickRightMouseClick 이벤트를 수신할 수 있습니다.

사용자 입력의 특성으로 인해 해당 이벤트를 발생시키는 모든 이벤트에 의존해서는 안 됩니다.

매개 변수

playerWhoHovered: Player

부모의 위에 호버링을 시작한 Player 또는 ClickDetector 또는 DragDetector 의 부모에 호버링을 시작한 사람.


코드 샘플

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.

Hovering Over and Off 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

이 이벤트는 플레이어의 커서가 부모의 또는 에서 떨어질 때 또는 의 부모에서 발사됩니다.이는 검출기와의 명시적 상호 작용을 수행하지 않으며, MouseClickRightMouseClick 이벤트를 수신할 수 있습니다.

사용자 입력의 특성으로 인해 해당 이벤트 후에 발생하는 모든 이벤트에 의존해서는 안 됩니다.

매개 변수

playerWhoHovered: Player

커서가 부모의 Player 또는 ClickDetector 또는 DragDetector 에서 떨어진 것으로 설정된 또는 의 자식입니다.


코드 샘플

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.

Hovering Over and Off 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

이 이벤트는 플레이어가 마우스 커서를 Script 또는 LocalScript 클릭할 때 Class.ClickDetector``Class.DragDetector 발생합니다.플레이어의 Character 가 검출기의 MaxActivationDistance 내에 있어야 한다는 점에 유의하십시오.

매개 변수

playerWhoClicked: Player

The Player 누가 마우스 커서를 부모의 ClickDetector 또는 DragDetector 에 오른쪽 클릭했는지.