Mouse

Hiển Thị Bản Đã Lỗi Thời

*Nội dung này được dịch bằng AI (Beta) và có thể có lỗi. Để xem trang này bằng tiếng Anh, hãy nhấp vào đây.

Không Thể Tạo

Chuột đã bị vượt qua bởi UserInputServiceContextActionService, có phạm vi rộng hơn, đòi hỏi nhiều tính năng hơn và hỗ trợ 0> xe hơi trên nền tảng0> tốt hơn. Nó vẫn được hỗ trợ vì

Đối tượng chuột đựng nhiều API cho các ngón tay, chủ yếu cho các nút và raycasting. Nó có thể được truy cập thông qua Player:GetMouse() được gọi trên Players.LocalPlayer trong một

  • Nó được nhận xét cao nhất cho đặt tính Icon , which changes the cursor's ngoại hình.
  • Nó liên tục raycasts vị trí chuột màn hình vào thế giới 3D bằng cách sử dụng속性 TargetFilter, lưu kết quả của ray
  • Plugins có thể sử dụng Plugin:GetMouse() để lấy một PluginMouse, có hành vi tương tự.

-- Từ một LocalScript:
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local mouse = player:GetMouse()
-- Cài đặt biểu tượng chuột
mouse.Icon = "rbxasset://SystemCursors/Wait"

Ghi chú:

  • Đối tượng này không điều khiển/hạn chế sự di chuyển của mũi tên. Để làm điều này, xem UserInputService.MouseBehaviorUserInputService.MouseDeltaSensitivity .

  • Nếu hai chức năng kết nối với cùng một sự kiện nhập, chẳng hạn như Button1Down , cả hai chức năng sẽ chạy khi sự kiện bắt đầu. Không có khái ni

  • Mặc dù một con chuột có thể không có sẵn trên tất cả các nền tảng, nhưng chuột vẫn sẽ hoạt động trên mobile (触) và console (gamepad), which thường không có máy chuột hoặc máy chuột. Đối với các hành vi ngang nền tảng, hãy sử dụng UserInputService và <

    Xem Nhập và Camera để biết thêm thông tin về việc tùy chỉnh các lựa chọn của bạn trong trải nghiệm của bạn.

Tóm Tắt

Thuộc Tính

  • Chỉ Đọc
    Không Sao Chép
    Đọc Song Song

    Vị trí CFrame của chuột trong không gian 3D.

  • Icon:ContentId
    Đọc Song Song

    ID nội dung của hình ảnh được sử dụng như Mouse biểu tượng.

  • Chỉ Đọc
    Không Sao Chép
    Đọc Song Song

    Một CFrame được đặt tại vị trí Workspace.CurrentCamera và hướng về phía 3D của chuột.

  • Chỉ Đọc
    Không Sao Chép
    Đọc Song Song

    Đối tượng trong không gian 3D the mouse is pointing to.

  • Đọc Song Song

    Xác định một đối tượng (và con cháu của nó) để bỏ qua khi xác định Mouse.HitMouse.Target .

  • Chỉ Đọc
    Không Sao Chép
    Đọc Song Song

    Chỉ thị Enum.NormalId bề mặt BasePart mà chuột đang chỉ thị.

  • Chỉ Đọc
    Không Sao Chép
    Đọc Song Song

    Một Ray đi theo hướng về phía bên trái của chuột, xuất phát từ vị trí thế giới Workspace.CurrentCamera .

  • Chỉ Đọc
    Không Sao Chép
    Đọc Song Song

    Mô tả chiều rộng của cửa sổ trò chơi bằng pixel.

  • Chỉ Đọc
    Không Sao Chép
    Đọc Song Song

    Mô tả chiều cao của cửa sổ trò chơi bằng pixel.

  • Chỉ Đọc
    Không Sao Chép
    Đọc Song Song

    Mô tả thành phần X (chiều ngang) của vị trí chuột trên màn hình.

  • Chỉ Đọc
    Không Sao Chép
    Đọc Song Song

    Mô tả thành phần Y (vertical) của vị trí màn hình chuột.

Sự Kiện

Thuộc Tính

Chỉ Đọc
Không Sao Chép
Đọc Song Song

Đặt tính này cho thấy vị trí của chuột trong 3D. Ghi nhớ rằng <a href="https://developer.microsoft.com/en-us/microsoft-edge/microsoft-edge-common-皮肤">Class.Mouse.TargetFilter\ và con cháu của nó sẽ bị bỏ qua.

Các nhà phát triển có thể nhận được vị trí của Hit như thế này:


local position = mouse.Hit.Position

Đâm thường được sử dụng bởi Tools để bắn một vũ khí về phía chuột trong thứ hạng ba.

Những nhà phát triển đang tìm kiếm BasePart nhà chuộng chỉ nên sử dụng Mouse.Target .

Làm thế nào Mouse.Hit được tính?

Vị trí của Hit CFrame được tính là điểm giao thoa giữa màn hình nội bộ của chuột Ray (một phiên bản mở rộng của Mouse.UnitRay ) và một đối tượng trong không gian 3D (như một phần).

Hướng của Hit CFrame tương ứng với hướng của Mouse.UnitRay .


local unitRayDirection = mouse.UnitRay.Direction
local mouseHitDirection = mouse.Hit.lookVector
-- unitRayDirection ≈ mouseHitDirection
-- the vectors are approximately equal

Lưu ý, cuộn dữ liệu của Workspace.CurrentCamera không được sử dụng khi tính toán hướng của Hit CFrame .

Ray nội bên của chuột được mở rộng lên đến 1,000 studs. Nếu chuột không chỉ vào một đối tượng trong không gian 3D (như khi chỉ vào trời), thuộc tính này sẽ được 1,000 studs xa Workspace.CurrentCamera .

Mẫu mã

Mouse.Hit Laser Beam

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)
Mouse Origin vs Mouse Hit vs CurrentCamera Position

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

ContentId
Đọc Song Song

Hình tượng là một thuộc tính xác định hình ảnh được sử dụng như một mũi tên. Nếu trống, một mũi tên mặc định được sử dụng. Khi cursor hoàn toàn bao quanh một GuiButton , thuộc tính này đã bị lỗi.

Để ẩn hoàn toàn curse, không sử dụng hình ảnh trong suốt - thay vào đó, set Class.UserInputService.MouseIconEnabled để false.

Để lấy/thiết lập icon người dùng trong kinh nghiệm, bạn nên sử dụng UserInputService.MouseIcon . Mouse.Icon sẽ bị deprecated sau khi phát hành API mới cho plugin để thiết lập người dùng.

Thiết kế một Cursor

Các hướng dẫn sau đây có thể hữu ích khi tạo ra chuột người dùng của riêng bạn:

  • Kích thước của hình ảnh được sử dụng xác định kích thước của cursor.
  • center của hình ảnh là nơi các lệnh chuột được phát ra.
  • Hình ảnh chuột mặc định là 64x64 pixels, với chuột chiếm 17x24 pixels không gian.

System Cursors for PluginMouse

Khi sử dụng một PluginMouse được lấy từ


<tbody>
<tr>
<td>
<img src="../../../assets/legacy/Mouse-Icon-Pointer.png">
</img>
</td>
<td><code>rbxasset://SystemCursors/Arrow</code></td>
<td>Mặc định nhấp chuột và lựa chọn.</td>
</tr>
<tr>
<td>
<img src="../../../assets/legacy/Mouse-Icon-PointingHand.png">
</img>
</td>
<td><code>rbxasset://SystemCursors/PointingHand</code></td>
<td>Giữ trên một liên kết/ nút đang hoạt động.</td>
</tr>
<tr>
<td>
<img src="../../../assets/legacy/Mouse-Icon-OpenHand.png">
</img>
</td>
<td><code>rbxasset://SystemCursors/OpenHand</code></td>
<td>Bỏ chuột lên một vật phẩmcó thể kéo.</td>
</tr>
<tr>
<td>
<img src="../../../assets/legacy/Mouse-Icon-GrabbingHand.png">
</img>
</td>
<td><code>rbxasset://SystemCursors/ClosedHand</code></td>
<td>Kéo một vật phẩm.</td>
</tr>
<tr>
<td>
<img src="../../../assets/legacy/Mouse-Icon-IBeam.png">
</img>
</td>
<td><code>rbxasset://SystemCursors/IBeam.</code></td>
<td>Di chuột trên một trương mục chữ.</td>
</tr>
<tr>
<td>
<img src="../../../assets/legacy/Mouse-Icon-ResizeNS.png">
</img>
</td>
<td><code>rbxasset://SystemCursors/SizeNS</code></td>
<td>Di chuột trên một tay cầm thay đổi chiều cao.</td>
</tr>
<tr>
<td>
<img src="../../../assets/legacy/Mouse-Icon-ResizeEW.png">
</img>
</td>
<td><code>rbxasset://SystemCursors/SizeEW</code></td>
<td>Di chuột qua tay cầm thay đổi kích thước ngang.</td>
</tr>
<tr>
<td>
<img src="../../../assets/legacy/Mouse-Icon-ResizeNESW.png">
</img>
</td>
<td><code>rbxasset://SystemCursors/SizeNESW</code></td>
<td>Di chuột qua tay cầm thay đổi kích thước.</td>
</tr>
<tr>
<td>
<img src="../../../assets/legacy/Mouse-Icon-ResizeNWSE.png">
</img>
</td>
<td><code>rbxasset://SystemCursors/SizeNWSE.</code></td>
<td>Di chuột qua tay cầm thay đổi kích thước.</td>
</tr>
<tr>
<td>
<img src="../../../assets/legacy/Mouse-Icon-ResizeAll.png">
</img>
</td>
<td><code>rbxasset://SystemCursors/SizeAll</code></td>
<td>Di chuột qua tay cầm thay đổi hướng.</td>
</tr>
<tr>
<td>
<img src="../../../assets/legacy/Mouse-Icon-ResizeSplitV.png">
</img>
</td>
<td><code>rbxasset://SystemCursors/SplitNS</code></td>
<td>Ghim một tay vịt trên một tay cầm "chia" ngang.</td>
</tr>
<tr>
<td>
<img src="../../../assets/legacy/Mouse-Icon-ResizeSplitH.png">
</img>
</td>
<td><code>rbxasset://SystemCursors/SplitEW</code></td>
<td>Ghim một tay cầm "chia" ngang.</td>
</tr>
<tr>
<td>
<img src="../../../assets/legacy/Mouse-Icon-Forbidden.png">
</img>
</td>
<td><code>rbxasset://SystemCursors/Forbidden.</code></td>
<td>Nhận những vật phẩm bị khóa/bị cấm.</td>
</tr>
<tr>
<td>
<img src="../../../assets/legacy/Mouse-Icon-Wait.png">
</img>
</td>
<td><code>rbxasset://SystemCursors/Wait</code></td>
<td>Chỉ thị một hành động đang diễn ra.</td>
</tr>
<tr>
<td>
<img src="../../../assets/legacy/Mouse-Icon-Busy.png">
</img>
</td>
<td><code>rbxasset://SystemCursors/Busy</code></td>
<td>Chỉ báo hệ thống đang bận.</td>
</tr>
<tr>
<td>
<img src="../../../assets/legacy/Mouse-Icon-Crosshair.png">
</img>
</td>
<td><code>rbxasset://SystemCursors/Cross</code></td>
<td>Bao quanh khu vực lựa chọn một chỉ dẫn.</td>
</tr>
</tbody>
Nhìn\*Tài sảnSử dụng được đề xuất

* Những hình dạng này chỉ là những khoảng cách gần - nhìn thực tế phụ thuộc vào hệ điều hành của bạn.

Mẫu mã

Dragon Mouse Icon

local Players = game:GetService("Players")
local mouse = Players.LocalPlayer:GetMouse()
mouse.Icon = "http://www.roblox.com/asset?id=163023520"

Origin

Chỉ Đọc
Không Sao Chép
Đọc Song Song

Thuộc tính nguồn gốc Mouse là một CFrame cho thấy nguồn gốc của chuột. Nó được đặt tại Workspace.CurrentCamera và hướng về phía 3D của chuột.

Mouse.UnitRay bắt đầu ở cùng một vị trí như Nguồn, và mở rộng cho một stud trong cùng một hướng.


local unitRay = mouse.UnitRay
local origin = mouse.Origin
-- unitRay.Direction = p.vị trí xuất phát
-- unitRay.Direction ≈ origin.lookVector

Đối với vị trí của Mouse trong không gian 3D, xem Mouse.Hit .

Mẫu mã

Mouse Origin vs Mouse Hit vs CurrentCamera Position

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

Chỉ Đọc
Không Sao Chép
Đọc Song Song

Đối tượng trong không gian 3D the mouse is pointing to.

Ghi chú:

  • Nếu Mouse.TargetFilter đã được cài đặt, lọc mục tiêu và con cháu của nó sẽ bị lãng quên.
  • Khi chuột không chỉ vào một BasePart, ví dụ khi nó chỉ vào trời, mục tiêu sẽ là nil.
  • Những nhà phát triển tìm vị trí của chuột trong không gian 3D nên sử dụng Mouse.Hit .

Mẫu mã

Color Randomizer Tool

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

Đọc Song Song

Thuộc tính này xác định một đối tượng để bỏ qua bởi chuột khi tính Mouse.HitMouse.Target . Các con cháu của đối tượng này

Đặt thuộc tính này vào bất kỳ Instance hoặc nil, ví dụ:


local Players = game:GetService("Players")
local player = Players.LocalPlayer
local mouse = player:GetMouse()
mouse.TargetFilter = workspace.Model

Lưu ý rằng Character của Class.Players.LocalPlayer bị tự động bỏ qua bởi chuột.

TargetSurface

Chỉ Đọc
Không Sao Chép
Đọc Song Song

Điều này cho thấy Enum.NormalId bề mặt của thế giới mà chuột đang chỉ vào. Điều này được xác định bằng cách lấy BasePart từ vị trí thế giới của chuột ( Mouse.Hit ) và phần của thế giớ

Điều này không có ý nghĩa khi chuột không chỉ vào một phần, ví dụ khi chuột chỉ vào trời. Hiện tại, điều này được thiết lập là "Phải" dưới các điều kiện này. Trước khi sử dụng điều này, hãy kiểm tra rằng mục tiêu của chuột không phải là zero.


local Players = game:GetService("Players")
local player = Players.LocalPlayer
local mouse = player:GetMouse()
-- Kiểm tra có tồn tại một phần nào đó mà chuột đang chỉ
if mouse.Target then
print("The mouse is pointing to the " .. mouse.TargetSurface.Name .. " side of " .. mouse.Target.Name)
else
print("The mouse is not pointing at anything.")
end

Mẫu mã

Surface Randomizer

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

Chỉ Đọc
Không Sao Chép
Đọc Song Song

Thuộc tính UnitRay là một Ray được hướng tới vị trí của con chuột trong không gian 3D (được mô tả bởi Mouse.Hit ). Nó xuất phát từ CFrame của Class.Workspace


local Players = game:GetService("Players")
local player = Players.LocalPlayer
local mouse = player:GetMouse()
print(mouse.UnitRay.Direction.magnitude) -- Always 1

ViewSizeX

Chỉ Đọc
Không Sao Chép
Đọc Song Song

Thuộc tính ViewSizeX mô tả kích thước ngang của cửa sổ game bằng pixel.

Mẫu mã

Normalized Mouse Position

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

Chỉ Đọc
Không Sao Chép
Đọc Song Song

Thuộc tính ViewSizeY mô tả kích thước ngang của cửa sổ game bằng pixel. Điều này bao gồm không gian được sử dụng bởi thanh trên cùng.

Mẫu mã

Normalized Mouse Position

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)
Chỉ Đọc
Không Sao Chép
Đọc Song Song

Khi phát hiện thay đổi vị trí của chuột trên màn hình, nên sử dụng ContextActionService:BindAction() với Enum.UserInputType.MouseMovement

Thuộc tính X mô tả thành phần ngang của vị trí chuột trên màn hình. Vị trí được đo bằng pixel so với góc trên cùng bên trái, dưới thanh trên cùng. Thuộc tính này có thể được sử dụng cùng với Mouse.Y để sản xuất một


local position = Vector2.new(mouse.X, mouse.Y)

Điều này không khởi động Changed hoặc tín hiệu được trả từ GetPropertyChangedSignal . Sử dụng sự kiện Mouse.Move thay vào đó.

Mẫu mã

Normalized Mouse Position

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)
Chỉ Đọc
Không Sao Chép
Đọc Song Song

Khi phát hiện thay đổi vị trí của chuột trên màn hình, nên sử dụng ContextActionService:BindAction() với Enum.UserInputType.MouseMovement

Thuộc tính Y mô tả thành phần dọc của vị trí chuột trên màn hình. Vị trí được đo bằng pixel so với góc trên cùng bên trái, dưới thanh trên cùng. Thuộc tính này có thể được sử dụng cùng với Mouse.X để sản xuất một


local position = Vector2.new(mouse.X, mouse.Y)

Điều này không khởi động Changed hoặc tín hiệu được trả từ GetPropertyChangedSignal . Sử dụng sự kiện Mouse.Move thay vào đó.

Mẫu mã

Normalized Mouse Position

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)

Phương Pháp

Sự Kiện

Button1Down

Button1Down thậm chí bị kích hoạt khi người chơi nhấn vào nút bên trái của chuột.

Điều này cũng có thể được truy cập từ một Tool . Ví dụ, khi được đặt trong một LocalScript, mã dưới đây in Button1Down mỗi khi nút nút trái chuột được nhấn:


local Tool = script.Parent --chắc chắn đây là một đối tượng công cụ
Tool.Equipped:Connect(function(Mouse)
Mouse.Button1Down:Connect(function()
print("Button1Down")
end)
end)

Các nhà phát triển có thể tìm vị trí của chuột trong không gian thế giới, và nếu nó đang chỉ vào bất kỳ Class.BasePart nào, sử dụng các thuộc tính BasePartMouse.Hit .

Để biết thông tin về cách lấy đối tượng chuột, vui lòng xem trang Mouse.

Ghi chú, các nhà phát triển được khuyến khích sử dụng UserInputService thay vì Mouse đối tượng trong công việc mới.


Mẫu mã

Color Randomizer Tool

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

Lửa khi nút chuột trái được thả.

Đối với thông tin về cách lấy đối tượng Mouse, vui lòng xem trang Mouse.

Các nhà phát triển có thể tìm vị trí của chuột trong không gian thế giới, và nếu nó đang chỉ vào bất kỳ Class.BasePart nào bằng cách sử dụng các thuộc tính BasePartMouse.Hit.

Ghi chú, các nhà phát triển được khuyến khích sử dụng UserInputService thay vì Mouse đối tượng trong công việc mới.


Mẫu mã

Color Randomizer Tool (Button1Up)

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

Button2Down thậm chí sẽ bắt lửa khi người chơi nhấn nút chuột phải của họ.

Điều này cũng có thể được truy cập từ một Tool . Ví dụ, khi được đặt trong một LocalScript, mã dưới đây in Button2Down mỗi khi nút chuột phải được nhấn:


local Tool = script.Parent --chắc chắn đây là một đối tượng công cụ
Tool.Equipped:Connect(function(Mouse)
Mouse.Button2Down:Connect(function()
print("Button2Down")
end)
end).

Các nhà phát triển có thể tìm vị trí của chuột trong không gian thế giới, và nếu nó đang chỉ vào bất kỳ Class.BasePart nào, sử dụng các thuộc tính BasePartMouse.Hit .

Để biết thông tin về cách lấy đối tượng chuột, vui lòng xem trang Mouse.

Ghi chú, các nhà phát triển được khuyến khích sử dụng UserInputService thay vì Mouse đối tượng trong công việc mới.


Mẫu mã

Color Randomizer Tool

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

Bắt đầu khi nút chuột phải được thả.


mouse.Button2Up:Connect(function()
print("button 2 up!")
end

Đối với thông tin về cách lấy đối tượng Mouse, vui lòng xem trang Mouse.

Các nhà phát triển có thể tìm vị trí của chuột trong không gian thế giới, và nếu nó đang chỉ vào bất kỳ Class.BasePart nào bằng cách sử dụng các thuộc tính BasePartMouse.Hit.

Ghi chú, các nhà phát triển được khuyến khích sử dụng UserInputService thay vì Mouse đối tượng trong công việc mới.


Mẫu mã

Color Randomizer Tool (Button2Up)

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

Được kích hoạt mỗi lần nhịp tim mà chuột không được chuyển sang sự kiện chuột khác.

Ghi chú, sự kiện này không nên được sử dụng để xác định khi chuột vẫn còn. Khi nó bắn mỗi nhịp tim nó sẽ bắn giữa các sự kiện Mouse.Move.

Đối với thông tin về cách lấy đối tượng Mouse, vui lòng xem trang Mouse.

Các nhà phát triển có thể tìm vị trí của chuột trong không gian thế giới, và nếu nó đang chỉ vào bất kỳ Class.BasePart nào bằng cách sử dụng các thuộc tính BasePartMouse.Hit.

Ghi chú, các nhà phát triển được khuyến khích sử dụng UserInputService thay vì Mouse đối tượng trong công việc mới.


Mẫu mã

Mouse.Idle

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

Bắt đầu khi chuột được di chuyển.

Lưu ý, sự kiện này được tác hại khi vị trí của chuột được cập nhật, do đó nó sẽ tác hại lặp lại khi được di chuyển.

Đối với thông tin về cách lấy đối tượng Mouse, vui lòng xem trang Mouse.

Các nhà phát triển có thể tìm vị trí của chuột trong không gian thế giới, và nếu nó đang chỉ vào bất kỳ Class.BasePart nào bằng cách sử dụng các thuộc tính BasePartMouse.Hit.


mouse.Move:Connect(function()
local position = mouse.Hit.p
local target = mouse.Target
print(target, position)
end)

Ghi chú, các nhà phát triển được khuyến khích sử dụng UserInputService thay vì Mouse đối tượng trong công việc mới.


Mẫu mã

Move Parts with the 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

Sự kiện WheelBackward bắt đầu khi bánh xe chuột được cuộn lên phía sau. Các tùy chỉnh khả dụng cho sự kiện này bao gồm đổi vị trí của ngắm bắn của một người chơi trong trình bắn FPS hoặc thay đổi kích thước của máy ảnh người chơi.

Điều này có thể được sử dụng cùng với sự kiện di chuyển về phía trước, Mouse.WheelForward .

Đối với thông tin về cách lấy đối tượng Mouse, vui lòng xem trang Mouse.

Ghi chú, các nhà phát triển được khuyến khích sử dụng UserInputService thay vì Mouse đối tượng trong công việc mới.


Mẫu mã

Mouse.WheelBackward

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

Sự kiện WheelForward bắt đầu khi bánh xe chuột được cuộn về phía trước. Các tùy chỉnh khác nhau cho sự kiện này bao gồm đổi vị trí của một người chơi trong một trò chơi bắn người đầu tiên (FPS) hoặc cuộn về vị trí của máy ảnh người chơi.

Điều này có thể được sử dụng cùng với sự kiện cuộn dịch quay lại, Mouse.WheelBackward .

Đối với thông tin về cách lấy đối tượng Mouse, vui lòng xem trang Mouse.

Ghi chú, các nhà phát triển được khuyến khích sử dụng UserInputService thay vì Mouse đối tượng trong công việc mới.


Mẫu mã

Mouse.WheelForward

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)