ClickDetector

显示已弃用

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

点击侦测器 允许 Scripts 和 Class.LocalScript|Lo点按alScripts</

默认控制脚本使用 ButtonR2ClickDetectors 使用 Class. contextAction

MaxActivationDistance 可用于限制玩家从点击探测器不再可以点击之前的距离。

ClickDetector 事件在服务器户端

输入优先权

如果多个 ClickDetectors 可以检测到用户输入,只有最深的会触发事件。如果两个 ClickDetectors 是兄弟姐妹,最深的将优先发生。

如果使用 ContextActionService 的动作与 ClickDetector 使用相同的输入,那么使用 ContextActionService 的动作将优先于点击探测器的事件。

UserInputService.InputBegan 将在 ClickDetector 事件之前触发。

代码示例

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)
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
读取并联

将鼠标悬停在此 ClickDetectorDragDetector 上时显示曲сор图标。如果此属性未填写,探测器将使用默认标志。

要更改鼠标标志,将此属性设置为您想要使用的图像的资产 ID 。

MaxActivationDistance

读取并联

此属性控制在游戏中玩家能够与其交互的最大距离,以 studs 单位表示。例实例,在 10 个 studs 内的一个角色与 1 个 Character 或 1 个 ClickDetector

方法

活动

MouseClick

此事件从 ScriptLocalScript 发生,当玩家与 ClickDetector 或 1>Class.DragDetector1> 通过以下输入交互时:

  • 在具有鼠标的平台上,当玩家离开鼠标点击。
  • TouchEnabled 平台上,当玩家点击时。
  • GamepadEnabled 平台上,当中心点位与同一模型,并且按下 A 按钮时。

注意,玩家的 Character 必须位于探测器的 MaxActivationDistance 内。

参数

playerWhoClicked: Player

点击了父的 Class.ClickDetector 或 ClickDetector 的。


MouseHoverEnter

此事件从 ScriptLocalScript 发生,当 ClickDetector 或 1> Class.DragDetector1> 被玩家悬停时,此事件不会与探测

由于用户输入的 nature,您不应该依赖所有 MouseHoverEnter 事件发生的相应 MouseHoverLeave 事件。

参数

playerWhoHovered: Player

那个开始将鼠标悬停在 Class.Player 或 ClickDetectorDragDetector 上的父级。


代码示例

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

此事件从 ScriptLocalScript 发生,当玩家的 cursor 从 ClickDetector 或 1> Class.DragDetector1> 上移动时, 这不会与探

由于用户输入的 nature,您不应该依赖于所有 Class.ClickDetector.MouseHoverLeave|MouseHoverExit|MouseHoverEnter|MouseHoverEnter 事件在相应的 Class.ClickDetector.MouseHoverEnter|MouseHoverExit|MouseHoverEnter 事件后发生。

参数

playerWhoHovered: Player

其鼠标悬停在 Class.Player 的父亲或 ClickDetectorDragDetector 上。


代码示例

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

此事件从 ScriptLocalScript 发生,当玩家右击鼠标时,当鼠标指针在 ClickDetector 或 1> Class.DragDetector1> 上时,注意玩家的 4> Class

参数

playerWhoClicked: Player

在 Class.ClickDetector 或 ClickDetector 的父级点击鼠标鼠标标记上,右击鼠标标记上的鼠标标记。