鼠标 已被超越 by UserInputService 和 ContextActionService , 它们覆盖了更广的范围、更富有功能、并支持 0> 跨平台0> 模式。它们仍然支持因其广泛使用而被支持,但您应该强烈考虑使用这些替代方案。
鼠标 对象住有多种 API 对指针,主要是按钮和射光线投射。它可以通过 Player:GetMouse() 调用 Players.LocalPlayer 中的 1> Class.Tool.Equipped1> 访问。它还通过 4> Class.Tool.Equipped4> 事件传递。
- 它最为明显的是 Icon 属性,该属性改变鼠标的外观。
- 它不断地将屏幕鼠标位置投射到 3D 世界使用 TargetFilter 属性,存储射线投射结果在 Hit , Class.Mouse
-- 从一个本地脚本:local Players = game:GetService("Players")local player = Players.LocalPlayerlocal mouse = player:GetMouse()-- 设置鼠标标志mouse.Icon = "rbxasset://SystemCursors/Wait"
注意:
此对象不会控制/限制指针移动。 为此,请参阅 UserInputService.MouseBehavior 和 UserInputService.MouseDeltaSensitivity 。
如果两个函数连接到同一个输入事件,例如 Button1Down , 都 个函数将在事件触发时运行。 没有沉没/传递输入的概念,因为事件不支持此行为。 但 ContextActionService 通过 1> Class.Context
虽然在所有平台上都可能无法使用鼠标,但是鼠标仍然会在移动设备 (触摸) 和控制器 (游戏手柄) 上正常运行,这些通常不会具有鼠标或指针硬件。 对于明确的跨平台行为,请使用 UserInputService 和 ContextActionService。
有关您在体验中自定义输入的更多信息,请参阅输入和相机。
概要
属性
鼠标在 3D 空间中的位置的 CFrame 。
Class.Mouse 图标的图像的内容 标志。
Datatype.CFrame 位于Workspace.CurrentCamera 并向鼠标的 3D 位置。
在 3D 空间中的对象指向 mouse 。
在确定 Mouse.Hit 和 Mouse.Target 时,确定要忽略对象 (和其子对象)。
指示 Enum.NormalId 表面的 BasePart 。
一个 Ray 朝着鼠标世界位置,起源于 Workspace.CurrentCamera 世界位置。
描述游戏窗口的宽度以像素计。
描述游戏窗口的高度以像素计。
描述鼠标位置在屏幕上的 X 部分。
描述鼠标屏幕位置的 Y 组件(垂直)。
活动
按左键时触发。
在左键点按释放时发射。
当右键点按时触发。
发生在右键点按释放时。
每次心跳时,鼠标不会被传到另一个鼠标事件。
移动鼠标时发射。
触发时,鼠标轮向后滚动。
触发时,鼠标轮向前滚动。
属性
Hit
此属性表示 CFrame 鼠标在 3D 空间中的位置。注意 Mouse.TargetFilter 和它的子后代将被忽略。
开发人员可以获取命中位置如下所示:
local position = mouse.Hit.Position
打击通常由 Tools 用于向鼠标向第三人称射击武器。
开发人员正在寻找 BasePart 鼠标指向应该使用 Mouse.Target 。
Mouse.Hit 如何计算?
Hit CFrame 的位置由计算为鼠标内部 Ray (一个延伸版本的 Mouse.UnitRay ) 和 3D 空间中的对象 (例如零件) 之间的交叉点。
Hit CFrame 的方向与 Mouse.UnitRay 的方向相对应。
local unitRayDirection = mouse.UnitRay.Directionlocal mouseHitDirection = mouse.Hit.lookVector-- unitRayDirection ≈ mouseHitDirection-- the vectors are approximately equal
注意,当计算 Hit CFrame 的方向时,不会使用 Class.Workspace.CurrentCamera 的滚动。
鼠标内部射线将延伸到 1,000 格。如果鼠标不指向 3D 空间中的对象 (例如指向天空时),此属性将与 Workspace.CurrentCamera 的距离为 1,000 格。
代码示例
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local player = Players.LocalPlayer
local mouse = player:GetMouse()
local beam = Instance.new("Beam")
beam.Segments = 1
beam.Width0 = 0.2
beam.Width1 = 0.2
beam.Color = ColorSequence.new(Color3.new(1, 0, 0))
beam.FaceCamera = true
local attachment0 = Instance.new("Attachment")
local attachment1 = Instance.new("Attachment")
beam.Attachment0 = attachment0
beam.Attachment1 = attachment1
beam.Parent = workspace.Terrain
attachment0.Parent = workspace.Terrain
attachment1.Parent = workspace.Terrain
local function onRenderStep()
local character = player.Character
if not character then
beam.Enabled = false
return
end
local head = character:FindFirstChild("Head")
if not head then
beam.Enabled = false
return
end
beam.Enabled = true
local origin = head.Position
local finish = mouse.Hit.Position
attachment0.Position = origin
attachment1.Position = finish
end
RunService.RenderStepped:Connect(onRenderStep)
local Players = game:GetService("Players")
local Workspace = game:GetService("Workspace")
local player = Players.LocalPlayer
local camera = Workspace.CurrentCamera
local mouse = player:GetMouse()
local camPos = camera.CFrame.Position
local function onButton1Down()
print("Mouse.Hit:", mouse.Hit.Position)
print("camPos:", camPos)
print("Mouse.Origin:", mouse.Origin.Position)
print("Magnitude:", (mouse.Origin.Position - camPos).Magnitude)
end
mouse.Button1Down:Connect(onButton1Down)
Icon
图标 是一个属性,它确定使用的图像作为指针。如果为空,默认箭头将被使用。当鼠标悬停在GuiButton上时,此属性暂时被忽略。
要完全隐藏鼠标,请不要使用透明图像 – 相反,将 Class.UserInputService.MouseIconEnabled 设置为 false。
在体验中获取/设置用户鼠标图标的方法,您应该使用 UserInputService.MouseIcon 。 Mouse.Icon 将在新的 API 为插件设置鼠标指针后被淘汰。
设计一个鼠标
创建自己的鼠标指针时,以下指南可能会很有用:
- 用户使用的图像尺寸会决定 cursor 的大小。
- 图像的 中心 是发生鼠标输入的地方。
- 默认鼠标图像是 64x64 像素,鼠标占用 17x24 像素的空间。
System Cursors for PluginMouse
使用 Plugin:GetMouse() 从 MouseEnter 中获取时,您可
<tbody><tr><td><img src="../../../assets/legacy/Mouse-Icon-Pointer.png"></img></td><td><code>rbxasset://SystemCursors/Arrow)</code></td><td>默认点击和选择。</td></tr><tr><td><img src="../../../assets/legacy/Mouse-Icon-PointingHand.png"></img></td><td><code>rbxasset://SystemCursors/PointingHand</code></td><td>将鼠标悬停在一个有效链接/按钮上。</td></tr><tr><td><img src="../../../assets/legacy/Mouse-Icon-OpenHand.png"></img></td><td><code>rbxasset://系统曲鼠/打开手</code></td><td>将鼠标悬停在拖动物物品上。</td></tr><tr><td><img src="../../../assets/legacy/Mouse-Icon-GrabbingHand.png"></img></td><td><code>rbxasset://SystemCursors/ClosedHand</code></td><td>拖动一个物品。</td></tr><tr><td><img src="../../../assets/legacy/Mouse-Icon-IBeam.png"></img></td><td><code>rbxasset://SystemCursors/IBeam)</code></td><td>在文本字段上悬停。</td></tr><tr><td><img src="../../../assets/legacy/Mouse-Icon-ResizeNS.png"></img></td><td><code>rbxasset://SystemCursors/SizeNS</code></td><td>将鼠标悬停在垂直缩放手柄上。</td></tr><tr><td><img src="../../../assets/legacy/Mouse-Icon-ResizeEW.png"></img></td><td><code>rbxasset://SystemCursors/SizeEW</code></td><td>将鼠标悬停在横向调整手柄。</td></tr><tr><td><img src="../../../assets/legacy/Mouse-Icon-ResizeNESW.png"></img></td><td><code>rbxasset://SystemCursors/SizeNESW</code></td><td>将鼠标悬停在一个角落上移动处理手柄。</td></tr><tr><td><img src="../../../assets/legacy/Mouse-Icon-ResizeNWSE.png"></img></td><td><code>rbxasset://SystemCursors/SizeNWSE</code></td><td>将鼠标悬停在一个角落上移动处理手柄。</td></tr><tr><td><img src="../../../assets/legacy/Mouse-Icon-ResizeAll.png"></img></td><td><code>rbxasset://SystemCursors/SizeAll</code></td><td>将鼠标悬停在多向旋转手柄上。</td></tr><tr><td><img src="../../../assets/legacy/Mouse-Icon-ResizeSplitV.png"></img></td><td><code>rbxasset://SystemCursors/SplitNS</code></td><td>将鼠标悬停在垂直“分割”手柄。</td></tr><tr><td><img src="../../../assets/legacy/Mouse-Icon-ResizeSplitH.png"></img></td><td><code>rbxasset://SystemCursors/SplitEW</code></td><td>将鼠标悬停在一个横向“分割”手柄上。</td></tr><tr><td><img src="../../../assets/legacy/Mouse-Icon-Forbidden.png"></img></td><td><code>rbxasset://SystemCursors/Forbidden)</code></td><td>将鼠标悬停在锁定/禁用的物品目上。</td></tr><tr><td><img src="../../../assets/legacy/Mouse-Icon-Wait.png"></img></td><td><code>rbxasset://SystemCursors/Wait</code></td><td>指示操作正在进行中。</td></tr><tr><td><img src="../../../assets/legacy/Mouse-Icon-Busy.png"></img></td><td><code>rbxasset://SystemCursors/Busy</code></td><td>表明系统正忙。</td></tr><tr><td><img src="../../../assets/legacy/Mouse-Icon-Crosshair.png"></img></td><td><code>rbxasset://SystemCursors/Cross</code></td><td>将鼠标悬停在一个选择区上。</td></tr></tbody>
看\* | 资产 | 建议使用 |
---|
* 这些外观是模拟的 - 实际外观取决于您的操作系统。
代码示例
local Players = game:GetService("Players")
local mouse = Players.LocalPlayer:GetMouse()
mouse.Icon = "http://www.roblox.com/asset?id=163023520"
Origin
Class.Mouse 属性是一个 CFrame 指示鼠标起始位置的。它位于 Workspace.CurrentCamera 和向鼠标 3D 位置方向。
Mouse.UnitRay 从原始位置开始,并且在同一方向上延伸。
local unitRay = mouse.UnitRaylocal origin = mouse.Origin-- 单位射线方向 = 起始 p-- unitRay.Direction ≈ origin.lookVector
在 3D 空间中 Mouse 的位置,请参阅 Mouse.Hit。
代码示例
local Players = game:GetService("Players")
local Workspace = game:GetService("Workspace")
local player = Players.LocalPlayer
local camera = Workspace.CurrentCamera
local mouse = player:GetMouse()
local camPos = camera.CFrame.Position
local function onButton1Down()
print("Mouse.Hit:", mouse.Hit.Position)
print("camPos:", camPos)
print("Mouse.Origin:", mouse.Origin.Position)
print("Magnitude:", (mouse.Origin.Position - camPos).Magnitude)
end
mouse.Button1Down:Connect(onButton1Down)
Target
在 3D 空间中的对象指向 mouse 。
注意:
- 如果 Mouse.TargetFilter 已被设置,目标过滤器和其子将被忽略。
- 当鼠标不指向BasePart,例如指向天空时,目标将为零。
- 开发者在 3D 空间中寻找鼠标位置应该使用 Mouse.Hit 。
代码示例
local Players = game:GetService("Players")
local localPlayer = Players.LocalPlayer
local backpack = localPlayer:WaitForChild("Backpack")
local tool = Instance.new("Tool")
tool.RequiresHandle = false
tool.CanBeDropped = false
tool.Parent = backpack
tool.Equipped:Connect(function(mouse)
mouse.Button1Down:Connect(function()
if mouse.Target and mouse.Target.Parent then
mouse.Target.BrickColor = BrickColor.random()
end
end)
end)
TargetFilter
这个属性决定一个对象在计算 Mouse.Hit 和 Mouse.Target 时会忽略。对象的后裔也会被忽略,因此在设置此属性时可以忽略多个对象,只要它们是该属性设置的后裔。此属性对于过滤
这个属性可以设置为任何 Instance 或零,例如:
local Players = game:GetService("Players")local player = Players.LocalPlayerlocal mouse = player:GetMouse()mouse.TargetFilter = workspace.Model
注意, Character 的 Players.LocalPlayer 被自动忽略。
TargetSurface
这个属性表示 Enum.NormalId 表面上的 BasePart ,鼠标指向的地面。此属性是由世界位置的鼠标 (Mouse.Hit ) 和指向的地面 (1> Class.Mouse.Target1>) 得到的。
当鼠标不指向零件时,此属性不具义义。例如,当鼠标指向天空时。在这些情况下,此属性设置为“右”。在使用此属性之前,请检查鼠标的目标是否为零。
local Players = game:GetService("Players")local player = Players.LocalPlayerlocal mouse = player:GetMouse()-- 检查是否存在鼠标指向的部分if mouse.Target thenprint("The mouse is pointing to the " .. mouse.TargetSurface.Name .. " side of " .. mouse.Target.Name)elseprint("The mouse is not pointing at anything.")end
代码示例
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local mouse = player:GetMouse()
local surfaceTypes = {
Enum.SurfaceType.Smooth,
Enum.SurfaceType.Glue,
Enum.SurfaceType.Weld,
Enum.SurfaceType.Studs,
Enum.SurfaceType.Inlet,
Enum.SurfaceType.Universal,
Enum.SurfaceType.Hinge,
Enum.SurfaceType.Motor,
}
local function onMouseClick()
-- make sure the mouse is pointing at a part
local target = mouse.Target
if not target then
return
end
local surfaceType = surfaceTypes[math.random(1, #surfaceTypes)]
local surface = mouse.TargetSurface
local propertyName = surface.Name .. "Surface"
mouse.Target[propertyName] = surfaceType
end
mouse.Button1Down:Connect(onMouseClick)
UnitRay
UnitRay 属性是一个向鼠标位置在 3D 空间中指向的 Ray 。它起源于 Mouse.Hit 的 8> Clas工作间.Camera.CFrame|CFrame 。 像所有单位射线一样,它有一个距离 1 的 1> Class.Workspace.CurrentCamera1> 。
local Players = game:GetService("Players")local player = Players.LocalPlayerlocal mouse = player:GetMouse()print(mouse.UnitRay.Direction.magnitude) -- Always 1
ViewSizeX
ViewSizeX 属性描述游戏窗口的横向组件的大小,以游戏窗口的像素数量。
代码示例
local Players = game:GetService("Players")
-- Note: You should use ContextActionService or UserInputService instead of
-- the Mouse object for accomplishing this task.
local player = Players.LocalPlayer
local mouse = player:GetMouse()
local function onMouseMove()
-- Construct Vector2 objects for the mouse's position and screen size
local position = Vector2.new(mouse.X, mouse.Y)
local size = Vector2.new(mouse.ViewSizeX, mouse.ViewSizeY)
-- A normalized position will map the top left (just under the topbar)
-- to (0, 0) the bottom right to (1, 1), and the center to (0.5, 0.5).
-- This is calculated by dividing the position by the total size.
local normalizedPosition = position / size
print(normalizedPosition)
end
mouse.Move:Connect(onMouseMove)
ViewSizeY
ViewSizeY 属性描述游戏窗口的大小的垂直组件,用于以像素计量。这个长度包括顶部栏的空间。
代码示例
local Players = game:GetService("Players")
-- Note: You should use ContextActionService or UserInputService instead of
-- the Mouse object for accomplishing this task.
local player = Players.LocalPlayer
local mouse = player:GetMouse()
local function onMouseMove()
-- Construct Vector2 objects for the mouse's position and screen size
local position = Vector2.new(mouse.X, mouse.Y)
local size = Vector2.new(mouse.ViewSizeX, mouse.ViewSizeY)
-- A normalized position will map the top left (just under the topbar)
-- to (0, 0) the bottom right to (1, 1), and the center to (0.5, 0.5).
-- This is calculated by dividing the position by the total size.
local normalizedPosition = position / size
print(normalizedPosition)
end
mouse.Move:Connect(onMouseMove)
当检测到屏幕上鼠标位置的变化时,您可以使用 ContextActionService:BindAction() 与 Enum.UserInputType.MouseMovement 或 UserInputService.InputChanged ,这两者都描述了
X 属性描述鼠标位置在屏幕上的横向组件。位置是以像素相对于顶部左角,在顶部栏下表示的。此属性可以与 Mouse.Y 使用,产生一个 Vector2 代表鼠标位置的 Datatype.Vector。
local position = Vector2.new(mouse.X, mouse.Y)
这个属性不会发射 Changed 或从 GetPropertyChangedSignal 返回的信号。 使用 Mouse.Move 事件。
代码示例
local Players = game:GetService("Players")
-- Note: You should use ContextActionService or UserInputService instead of
-- the Mouse object for accomplishing this task.
local player = Players.LocalPlayer
local mouse = player:GetMouse()
local function onMouseMove()
-- Construct Vector2 objects for the mouse's position and screen size
local position = Vector2.new(mouse.X, mouse.Y)
local size = Vector2.new(mouse.ViewSizeX, mouse.ViewSizeY)
-- A normalized position will map the top left (just under the topbar)
-- to (0, 0) the bottom right to (1, 1), and the center to (0.5, 0.5).
-- This is calculated by dividing the position by the total size.
local normalizedPosition = position / size
print(normalizedPosition)
end
mouse.Move:Connect(onMouseMove)
当检测到屏幕上鼠标位置的变化时,您可以使用 ContextActionService:BindAction() 与 Enum.UserInputType.MouseMovement 或 UserInputService.InputChanged ,这两者都描述了
鼠标位置在屏幕上的垂直组件描述在屏幕上的鼠标位置。位置是以像素相对于顶部左角,在顶部栏下计量的。此属性可以与 Mouse.X 使用,产生一个 Vector2 代表鼠标位置的 Class.Mouse.X。
local position = Vector2.new(mouse.X, mouse.Y)
这个属性不会发射 Changed 或从 GetPropertyChangedSignal 返回的信号。 使用 Mouse.Move 事件。
代码示例
local Players = game:GetService("Players")
-- Note: You should use ContextActionService or UserInputService instead of
-- the Mouse object for accomplishing this task.
local player = Players.LocalPlayer
local mouse = player:GetMouse()
local function onMouseMove()
-- Construct Vector2 objects for the mouse's position and screen size
local position = Vector2.new(mouse.X, mouse.Y)
local size = Vector2.new(mouse.ViewSizeX, mouse.ViewSizeY)
-- A normalized position will map the top left (just under the topbar)
-- to (0, 0) the bottom right to (1, 1), and the center to (0.5, 0.5).
-- This is calculated by dividing the position by the total size.
local normalizedPosition = position / size
print(normalizedPosition)
end
mouse.Move:Connect(onMouseMove)
方法
活动
Button1Down
当玩家按下左键时,Button1Down 也会发生。
此外,您可以从一个 Tool 访问。例如,当放置在一个 LocalScript 中时,代码下面的按钮1向下打印,当左键点按时:
local Tool = script.Parent --确保这是一个工具对象
Tool.Equipped:Connect(function(Mouse)
Mouse.Button1Down:Connect(function()
print("Button1Down")
end)
end)
开发人员可以使用 BasePart 和 Mouse.Hit 以及 Mouse.Target 属性,在世界空间中查找鼠标的位置。
有关获取鼠标对象的信息,请参阅Mouse页面。
注意,开发人员建议使用 UserInputService 而不是新工作中的 Mouse 对象。
代码示例
local Players = game:GetService("Players")
local localPlayer = Players.LocalPlayer
local backpack = localPlayer:WaitForChild("Backpack")
local tool = Instance.new("Tool")
tool.RequiresHandle = false
tool.CanBeDropped = false
tool.Parent = backpack
tool.Equipped:Connect(function(mouse)
mouse.Button1Down:Connect(function()
if mouse.Target and mouse.Target.Parent then
mouse.Target.BrickColor = BrickColor.random()
end
end)
end)
Button1Up
在左键点按释放时发射。
有关获得 Mouse 对象的信息,请参阅 Mouse 页面。
开发人员可以查看世界空间中的鼠标位置,并且使用 BasePart 和 Mouse.Hit 属性来指向任何 Mouse.Target 。
注意,开发人员建议使用 UserInputService 而不是新工作中的 Mouse 对象。
代码示例
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local mouse = player:GetMouse()
local target = nil
local function button1Down()
target = mouse.Target
end
local function button1Up()
if target == mouse.Target then
target.BrickColor = BrickColor.random()
end
end
mouse.Button1Down:Connect(button1Down)
mouse.Button1Up:Connect(button1Up)
Button2Down
按钮2下甚至会在玩家按下右键时触发。
此外,您可以从一个 Tool 访问。例如,当它放置在一个 LocalScript 中时,代码下面的 Button2Down 打印 Button2Down 每当右键点按时:
local Tool = script.Parent --确保这是一个工具对象
Tool.Equipped:Connect(function(Mouse)
Mouse.Button2Down:Connect(function()
print("Button2Down")
end)
end).
开发人员可以使用 BasePart 和 Mouse.Hit 以及 Mouse.Target 属性,在世界空间中查找鼠标的位置。
有关获取鼠标对象的信息,请参阅Mouse页面。
注意,开发人员建议使用 UserInputService 而不是新工作中的 Mouse 对象。
代码示例
local Players = game:GetService("Players")
local localPlayer = Players.LocalPlayer
local backpack = localPlayer:WaitForChild("Backpack")
local tool = Instance.new("Tool")
tool.RequiresHandle = false
tool.CanBeDropped = false
tool.Parent = backpack
tool.Equipped:Connect(function(mouse)
mouse.Button2Down:Connect(function()
if mouse.Target and mouse.Target.Parent then
mouse.Target.BrickColor = BrickColor.random()
end
end)
end)
Button2Up
发生在右键点按释放时。
mouse.Button2Up:Connect(function()
print("button 2 up!")
end
有关获得 Mouse 对象的信息,请参阅 Mouse 页面。
开发人员可以查看世界空间中的鼠标位置,并且使用 BasePart 和 Mouse.Hit 属性来指向任何 Mouse.Target 。
注意,开发人员建议使用 UserInputService 而不是新工作中的 Mouse 对象。
代码示例
local Players = game:GetService("Players")
local mouse = Players.LocalPlayer:GetMouse()
local target = nil
mouse.Button2Down:Connect(function()
target = mouse.Target
end)
mouse.Button2Up:Connect(function()
if target == mouse.Target then
target.BrickColor = BrickColor.random()
end
end)
Idle
每次心跳时,鼠标不会被传到另一个鼠标事件。
注意,此事件不应用于确定鼠标是否仍然。它每次心跳都会在 Mouse.Move 事件之间发射。
有关获得 Mouse 对象的信息,请参阅 Mouse 页面。
开发人员可以查看世界空间中的鼠标位置,并且使用 BasePart 和 Mouse.Hit 属性来指向任何 Mouse.Target 。
注意,开发人员建议使用 UserInputService 而不是新工作中的 Mouse 对象。
代码示例
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local player = Players.LocalPlayer
local mouse = player:GetMouse()
local events = {
"Button1Down",
"Button1Up",
"Button2Down",
"Button2Up",
"Idle",
"Move",
"WheelBackward",
"WheelForward",
"KeyDown",
"KeyUp",
}
local currentEvent
local frame = 0
local function processInput()
frame = frame + 1
print("Frame", frame, "- mouse event was passed to", currentEvent)
end
for _, event in pairs(events) do
mouse[event]:Connect(function()
currentEvent = event
end)
end
RunService:BindToRenderStep("ProcessInput", Enum.RenderPriority.Input.Value, processInput)
Move
移动鼠标时发射。
注意,该事件是在鼠标位置更新时触发的,因此在移动时会再次触发。
有关获得 Mouse 对象的信息,请参阅 Mouse 页面。
开发人员可以查看世界空间中的鼠标位置,并且使用 BasePart 和 Mouse.Hit 属性来指向任何 Mouse.Target 。
mouse.Move:Connect(function()
local position = mouse.Hit.p
local target = mouse.Target
print(target, position)
end)
注意,开发人员建议使用 UserInputService 而不是新工作中的 Mouse 对象。
代码示例
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local mouse = player:GetMouse()
local point
local down
local function selectPart()
if mouse.Target and not mouse.Target.Locked then
point = mouse.Target
mouse.TargetFilter = point
down = true
end
end
local function movePart()
if down and point then
local posX, posY, posZ = mouse.Hit.X, mouse.Hit.Y, mouse.Hit.Z
point.Position = Vector3.new(posX, posY, posZ)
end
end
local function deselectPart()
down = false
point = nil
mouse.TargetFilter = nil
end
mouse.Button1Down:Connect(selectPart)
mouse.Button1Up:Connect(deselectPart)
mouse.Move:Connect(movePart)
WheelBackward
轮向后退事件触发,当鼠标轮向后滚动。 可能的使用例子包括在第一人称FPS击游戏中切换枪械瞄准器或在第三人称视角下缩放玩家的相镜头。
这可以与滚动前进事件, Mouse.WheelForward 一起使用。
有关获得 Mouse 对象的信息,请参阅 Mouse 页面。
注意,开发人员建议使用 UserInputService 而不是新工作中的 Mouse 对象。
代码示例
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local mouse = player:GetMouse()
local function onWheelBackward()
print("Wheel went backwards!")
end
mouse.WheelBackward:Connect(onWheelBackward)
WheelForward
当鼠标轮向前滚动时,轮前进事件触发。 可能的使用包括在第一人称FPS击游戏中切换枪械瞄准器或在第二人称视角下缩放玩家的相镜头。
这可以与滚动向后事件, Mouse.WheelBackward 一起使用。
有关获得 Mouse 对象的信息,请参阅 Mouse 页面。
注意,开发人员建议使用 UserInputService 而不是新工作中的 Mouse 对象。
代码示例
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local mouse = player:GetMouse()
local function onWheelBackward()
print("Wheel went forward!")
end
mouse.WheelForward:Connect(onWheelBackward)