ClickDetector

显示已弃用

*此内容使用人工智能(Beta)翻译,可能包含错误。若要查看英文页面,请点按 此处

点击探测器 允许 ScriptsLocalScripts 通过其 MouseClick 事件接收 3D 对象的指针输入。当作为父辈传给 BasePart , ModelFolder 对象时,它们会工作。它们检测基本鼠标事件:输入、离进入、左键单击和右键点按。TouchEnabled 设备上的触摸输入也会触发单击事件。

默认控制脚本绑定 ButtonR2ClickDetectors 使用 ContextActionService:BindActivate() 进行交互,也可用于覆盖此。使用游戏手柄时,中心点触发 MouseHoverEnterMouseHoverLeave 。绑定激活按钮发射 MouseClick .

MaxActivationDistance 可用于限制玩家在点击检测器之前可能从其距离的距离。

ClickDetector 事件在客户端和服务器上发生。由于 LocalScript 只会在其从 Player 或玩家 Character 降级时运行,因此通常不需要将 LocalScript 放置在 ClickDetector 内,因为脚本不会运行或对象无法单击。如果您需要检测 事件,那么 可能是更好的选择。

输入优先级

如果多个 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
-- 将函数连接到鼠标单击事件
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
读取并联

MaxActivationDistance

读取并联

方法

活动

MouseClick

参数

playerWhoClicked: Player

MouseHoverEnter

参数

playerWhoHovered: Player

代码示例

悬停在点击探测器上并关闭它

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

参数

playerWhoHovered: Player

代码示例

悬停在点击探测器上并关闭它

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

参数

playerWhoClicked: Player