Mouse

Tampilkan yang Tidak Digunakan Lagi

*Konten ini diterjemahkan menggunakan AI (Beta) dan mungkin mengandung kesalahan. Untuk melihat halaman ini dalam bahasa Inggris, klik di sini.

Tidak Dapat Dibuat

Mouse telah digantikan oleh UserInputService dan ContextActionService, yang mencakup scope yang lebih luas, lebih kaya fitur, dan mendukung pola 0> cross-platform0> lebih baik. Tetap didukung karena penggunaannya yang luas, tetapi Anda harus sangat mempertimbangkan menggunakan alternatif ini.

Objek Tikus berisi berbagai API untuk poin, sebagian besar untuk tombol dan raycasting. Ini dapat diakses melalui Player:GetMouse() yang dipanggil di Players.LocalPlayer dalam 1> Class.LocalScript1> . Ini juga dilewati oleh acara 4> Class

  • Ini paling terkenal untuk Icon properti, yang mengubah penampilankurungan.
  • Itu terus-menerus raycasts posisi mouse layar ke dunia 3D menggunakan property TargetFilter, menyimpan hasil raycast di Hit, Class.Mouse.Target|Target
  • Plugins dapat menggunakan Plugin:GetMouse() untuk mendapatkan PluginMouse, yang bersikap sama.

-- Dari LocalScript:
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local mouse = player:GetMouse()
-- Mengatur ikon mouse
mouse.Icon = "rbxasset://SystemCursors/Wait"

Catatan:

  • Objek ini tidak mengontrol/membatasi gerakan poin. Untuk ini, lihat UserInputService.MouseBehavior dan UserInputService.MouseDeltaSensitivity .

  • Jika dua fungsi terhubung ke acara masukan yang sama, seperti Button1Down, both fungsi akan berjalan ketika acara menyala. Tidak ada konsep tenggelam/lewati input, karena acara tidak mendukung perilaku ini. Namun, Class.ContextActionService <

  • Sementara mouse mungkin tidak tersedia di semua platform, Mouse masih akan berfungsi di mobile (sentuh) dan konsol (gamepad), yang tidak biasanya memiliki mouse atau poin pengguna. Untuk perilaku cross-platform yang eksplisit, gunakan UserInputService dan ContextActionService.

    Lihat Masuk dan Kamera untuk lebih banyak informasi tentang kustomisasi masukan dalam pengalaman Anda.

Rangkuman

Properti

  • Hanya Baca
    Tidak Direplikasi
    Baca Paralel

    Datatype.CFrame posisi mouse di ruang 3D.

  • Icon:ContentId
    Baca Paralel

    ID konten gambar yang digunakan sebagai ikon Mouse .

  • Hanya Baca
    Tidak Direplikasi
    Baca Paralel

    A CFrame berada di posisi Workspace.CurrentCamera dan bergerak ke arah mouse 3D.

  • Hanya Baca
    Tidak Direplikasi
    Baca Paralel

    Objek di ruang 3D mouse yang menunjuk ke.

  • Mengidentifikasi objek (dan anak-anjungnya) yang harus diabaikan saat menentukan Mouse.Hit dan Mouse.Target .

  • Hanya Baca
    Tidak Direplikasi
    Baca Paralel

    Menunjukkan Enum.NormalId permukaan di mana mouse berada.

  • Hanya Baca
    Tidak Direplikasi
    Baca Paralel

    Sebuah Ray yang diarahkan ke posisi dunia mouse, berasal dari posisi dunia Workspace.CurrentCamera .

  • Hanya Baca
    Tidak Direplikasi
    Baca Paralel

    Menggambarkan lebar jendela permainan dalam pixel.

  • Hanya Baca
    Tidak Direplikasi
    Baca Paralel

    Menggambarkan tinggi jendela game dalam pixel.

  • Hanya Baca
    Tidak Direplikasi
    Baca Paralel

    Menggambarkan komponen X (vertikal) dari posisi mouse di layar.

  • Hanya Baca
    Tidak Direplikasi
    Baca Paralel

    Menggambarkan komponen Y (vertikal) dari posisi layar mouse.

Acara

Properti

Hanya Baca
Tidak Direplikasi
Baca Paralel

Item ini menunjukkan CFrame posisi mouse di ruang 3D. Catat bahwa Mouse.TargetFilter dan anak-anaknya akan diabaikan.

Pengembang dapat mengambil posisi Hit seperti berikut:


local position = mouse.Hit.Position

Hit sering digunakan oleh Tools untuk menembak senjata ke arah mouse dalam waktu pemain pertama.

Pengembang mencari BasePart mouse mengacungkan jari ke atas seharusnya menggunakan Mouse.Target .

Bagaimana Mouse.Hit dihitung?

Posisi Hit CFrame dihitung sebagai titik persimpangan antara mouse's internal Ray (versi ekstensi dari Mouse.UnitRay ) dan objek di ruang 3D (seperti bagian).

Arah orientasi Hit CFrame sesuai dengan arah Mouse.UnitRay .


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

Catatan, gulir dari Workspace.CurrentCamera tidak digunakan saat menghitung orientasi Hit CFrame .

Ray internal mouse menyebar untuk 1.000 stud. Jika mouse tidak menunjuk ke objek di ruang 3D (misalnya ketika menunjuk ke langit), property ini akan 1.000 stud jauh dari Workspace.CurrentCamera .

Contoh Kode

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
Baca Paralel

Icon adalah property yang menentukan gambar yang digunakan sebagai poin pengacak. Jika kosong, panah default digunakan. Sementara cursor menyebrang di atas GuiButton, property ini diabaikan sementara.

Untuk menyembunyikan cursor sepenuhnya, jangan gunakan gambar transparan – sebaliknya, tetapkan Class.UserInputService.MouseIconEnabled ke false.

Untuk mendapatkan/menetapkan ikon pengguna di pengalaman, Anda harus menggunakan UserInputService.MouseIcon . Mouse.Icon akan dihapus setelah API baru untuk plugin untuk menetapkan kurungan mouse.

Mendesain Kursi

Petunjuk berikut dapat membantu saat membuat kursi mouse Anda sendiri:

  • Dimensi gambar yang digunakan menentukan ukuran cursor.
  • Pusat gambar adalah di mana input mouse diterbitkan.
  • Gambar mouse default adalah 64x64 pixel, dengan mouse mengambil 17x24 pixel ruang.

System Cursors for PluginMouse

Ketika menggunakan a PluginMouse yang diambil dari Class.Plugin


<tbody>
<tr>
<td>
<img src="../../../assets/legacy/Mouse-Icon-Pointer.png">
</img>
</td>
<td><code>rbxasset://SystemCursors/Arrow</code></td>
<td>Klik dan pilihan default.</td>
</tr>
<tr>
<td>
<img src="../../../assets/legacy/Mouse-Icon-PointingHand.png">
</img>
</td>
<td><code>rbxasset://SistemKursi/PointingHand</code></td>
<td>Menghover atas tombol/tombol yang aktif.</td>
</tr>
<tr>
<td>
<img src="../../../assets/legacy/Mouse-Icon-OpenHand.png">
</img>
</td>
<td><code>rbxasset://Sistem Cursors/OpenHand</code></td>
<td>Menghover item yang dapat di geser.</td>
</tr>
<tr>
<td>
<img src="../../../assets/legacy/Mouse-Icon-GrabbingHand.png">
</img>
</td>
<td><code>rbxasset://SystemCursors/ClosedHand</code></td>
<td>Menyeret item.</td>
</tr>
<tr>
<td>
<img src="../../../assets/legacy/Mouse-Icon-IBeam.png">
</img>
</td>
<td><code>rbxasset://Sistem Kursi/IBeam</code></td>
<td>Bergerak di atas field teks.</td>
</tr>
<tr>
<td>
<img src="../../../assets/legacy/Mouse-Icon-ResizeNS.png">
</img>
</td>
<td><code>rbxasset://SystemCursors/SizeNS</code></td>
<td>Menghovering over a vertical resize handle.</td>
</tr>
<tr>
<td>
<img src="../../../assets/legacy/Mouse-Icon-ResizeEW.png">
</img>
</td>
<td><code>rbxasset://SystemCursors/SizeEW</code></td>
<td>Menghovering over a horizontal resize handle.</td>
</tr>
<tr>
<td>
<img src="../../../assets/legacy/Mouse-Icon-ResizeNESW.png">
</img>
</td>
<td><code>rbxasset://SystemCursors/SizeNESW</code></td>
<td>Menyesuaikan ukuran handle saat menaiki sudut.</td>
</tr>
<tr>
<td>
<img src="../../../assets/legacy/Mouse-Icon-ResizeNWSE.png">
</img>
</td>
<td><code>rbxasset://SystemCursors/SizeNWSE</code></td>
<td>Menyesuaikan ukuran handle saat menaiki sudut.</td>
</tr>
<tr>
<td>
<img src="../../../assets/legacy/Mouse-Icon-ResizeAll.png">
</img>
</td>
<td><code>rbxasset://SystemCursors/SizeAll</code></td>
<td>Menyesuaikan tangan pengubah ukuran bertumpuhan di atas.</td>
</tr>
<tr>
<td>
<img src="../../../assets/legacy/Mouse-Icon-ResizeSplitV.png">
</img>
</td>
<td><code>rbxasset://Sistem Kursi/SplitNS</code></td>
<td>Menghovering over a vertical "split" handle.</td>
</tr>
<tr>
<td>
<img src="../../../assets/legacy/Mouse-Icon-ResizeSplitH.png">
</img>
</td>
<td><code>rbxasset://SistemKursi/SplitEW</code></td>
<td>Menghovering over a horizontal "plit" handle.</td>
</tr>
<tr>
<td>
<img src="../../../assets/legacy/Mouse-Icon-Forbidden.png">
</img>
</td>
<td><code>rbxasset://Sistem Kursi/Dilarang</code></td>
<td>Menghover item yang terkunci/dilarang.</td>
</tr>
<tr>
<td>
<img src="../../../assets/legacy/Mouse-Icon-Wait.png">
</img>
</td>
<td><code>rbxasset://Sistem Kursi/Tunggu</code></td>
<td>Menunjukkan bahwa tindakan sedang berlangsung.</td>
</tr>
<tr>
<td>
<img src="../../../assets/legacy/Mouse-Icon-Busy.png">
</img>
</td>
<td><code>rbxasset://SystemCursors/Busy</code></td>
<td>Menunjukkan bahwa sistem sedang sibuk.</td>
</tr>
<tr>
<td>
<img src="../../../assets/legacy/Mouse-Icon-Crosshair.png">
</img>
</td>
<td><code>rbxasset://Sistem Kursi/Cross</code></td>
<td>Menggulir di atas area pemilihan pin.</td>
</tr>
</tbody>
Lihat\*AsetPenggunaan yang Direkomendasikan

* Penampilan ini merupakan aproximasi - tampilan sebenarnya bergantung pada sistem operasi Anda.

Contoh Kode

Dragon Mouse Icon

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

Origin

Hanya Baca
Tidak Direplikasi
Baca Paralel

Properti asal Mouse adalah CFrame yang menunjukkan dari mana asal mouse. Ini berada di posisi Workspace.CurrentCamera dan bergerak ke arah posisi 3D mouse.

Mouse.UnitRay dimulai di posisi yang sama dengan Orign, dan berlanjut selama stud dalam arah yang sama.


local unitRay = mouse.UnitRay
local origin = mouse.Origin
-- unitRay.Direction = pusat.p
-- unitRay.Direction ≈ origin.lookVector

Untuk posisi Mouse di ruang 3D, lihat Mouse.Hit.

Contoh Kode

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

Hanya Baca
Tidak Direplikasi
Baca Paralel

Objek di ruang 3D mouse yang menunjuk ke.

Catatan:

  • Jika Mouse.TargetFilter telah atur, filter target dan anak-anaknya akan diabaikan.
  • Ketika mouse tidak menunjuk ke arah BasePart, misalnya ketika menunjuk ke langit, Target akan menjadi nol.
  • Pengembang mencari posisi mouse di ruang 3D harus menggunakan Mouse.Hit .

Contoh Kode

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

Baca Paralel

Properti ini menentukan objek yang harus diabaikan oleh mouse saat menghitung Mouse.Hit dan Mouse.Target . Cetakan dari objek juga diabaikan, jadi mungkin untuk mengabaikan beberapa objek asalkan mereka adalah cetakan dari

Elemen ini dapat diatur ke nil atau Instance apa pun, misalnya:


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

Catat bahwa Character dari Players.LocalPlayer diabaikan oleh mouse secara otomatis.

TargetSurface

Hanya Baca
Tidak Direplikasi
Baca Paralel

Item ini menunjukkan Enum.NormalId dari permukaan BasePart di mana mouse berada. Item ini diambil dari posisi dunia mouse ( Mouse.Hit ) dan bagian yang diarahkan mouse ( 1> Class.Mouse.Target1> ).

Item ini tidak bermakna saat mouse tidak menunjuk ke bagian, misalnya saat mouse menunjuk ke langit. Saat ini, item ini diatur ke 'Kanan' di bawah kondisi ini. Sebelum menggunakan item ini, periksa bahwa target mouse tidak nol.


local Players = game:GetService("Players")
local player = Players.LocalPlayer
local mouse = player:GetMouse()
-- Periksa apakah ada bagian di mana mouse berada
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

Contoh Kode

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

Hanya Baca
Tidak Direplikasi
Baca Paralel

Prop UnitRay adalah Ray yang dipandu ke arah posisi mouse di ruang 3D (diterima dengan Mouse.Hit ). Ini berasal dari CFrame dari 1> Class.Workspace.CurrentCamera1> . Seperti semua unit rays, itu memiliki jarak 1.


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

ViewSizeX

Hanya Baca
Tidak Direplikasi
Baca Paralel

Propiedad ViewSizeX menjelaskan komponen vertikal dari ukuran jendela game dalam pixel.

Contoh Kode

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

Hanya Baca
Tidak Direplikasi
Baca Paralel

Prop ViewSizeY menjelaskan komponen vertikal dari ukuran jendela game dalam pixel. Panjang ini termasuk ruang yang digunakan oleh bilah atas.

Contoh Kode

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)
Hanya Baca
Tidak Direplikasi
Baca Paralel

Saat mendeteksi perubahan posisi mouse on-screen, disarankan agar Anda menggunakan ContextActionService:BindAction() dengan Enum.UserInputType.MouseMovement atau Class.UserInputService.Input

Propiedad X menjelaskan komponen vertikal posisi mouse di layar. Posisi diukur dalam pixel relatif terhadap sudut atas kiri, di bawah bilah atas. Propiedad ini dapat digunakan bersama-sama dengan Mouse.Y untuk menghasilkan propiedad Vector2 mewakili posisi mouse:


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

Properti ini tidak menembakkan Changed atau sinyal yang dikembalikan dari GetPropertyChangedSignal . Gunakan acara Mouse.Move sebagai gantinya.

Contoh Kode

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)
Hanya Baca
Tidak Direplikasi
Baca Paralel

Saat mendeteksi perubahan posisi mouse on-screen, disarankan agar Anda menggunakan ContextActionService:BindAction() dengan Enum.UserInputType.MouseMovement atau Class.UserInputService.Input

Propietas Y menjelaskan komponen vertikal posisi mouse di layar. Posisi diukur dalam pixel relatif terhadap sudut atas kiri, di bawah sudut atas bar. Propietas ini dapat digunakan bersama-sama dengan Mouse.X untuk menghasilkan Vector2 mewakili posisi mouse:


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

Properti ini tidak menembakkan Changed atau sinyal yang dikembalikan dari GetPropertyChangedSignal . Gunakan acara Mouse.Move sebagai gantinya.

Contoh Kode

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)

Metode

Acara

Button1Down

Button1Down bahkan menembak saat pemain menekan tombol kiri mouse mereka.

Ini juga dapat diakses dari a Tool. Misalnya, ketika ditempatkan di dalam a LocalScript, kode di bawah ini menghasilkan Button1Down setiap kali tombol kiri mouse ditekan:


local Tool = script.Parent --astikan ini adalah objek Alat
Tool.Equipped:Connect(function(Mouse)
Mouse.Button1Down:Connect(function()
print("Button1Down")
end)
end)

Pengembang dapat mengetahui posisi mouse di ruang dunia, dan jika itu menunjuk ke Class.BasePart mana pun, menggunakan propperti BasePart dan Mouse.Hit.

Untuk informasi tentang cara mendapatkan objek mouse, silakan lihat halaman Mouse.

Catatan, pengembang direkomendasikan menggunakan UserInputService alih-alih objek Mouse di pekerjaan baru.


Contoh Kode

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

Dibakar saat tombol kiri mouse dilepaskan.

Untuk informasi tentang cara mendapatkan objek Mouse, silakan lihat halaman Mouse.

Pengembang dapat mengetahui posisi mouse di ruang dunia, dan jika itu menunjuk ke salah satu BasePart menggunakan propperti Mouse.Hit dan Mouse.Target.

Catatan, pengembang direkomendasikan menggunakan UserInputService alih-alih objek Mouse di pekerjaan baru.


Contoh Kode

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 bahkan menembak saat pemain menekan tombol kanan mouse mereka.

Ini juga dapat diakses dari a Tool. Misalnya, ketika ditempatkan di a LocalScript, kode di bawah ini menghasilkan Button2Down setiap kali tombol kanan mouse ditekan:


local Tool = script.Parent --astikan ini adalah objek Alat
Tool.Equipped:Connect(function(Mouse)
Mouse.Button2Down:Connect(function()
print("Button2Down")
end)
end).

Pengembang dapat mengetahui posisi mouse di ruang dunia, dan jika itu menunjuk ke Class.BasePart mana pun, menggunakan propperti BasePart dan Mouse.Hit.

Untuk informasi tentang cara mendapatkan objek mouse, silakan lihat halaman Mouse.

Catatan, pengembang direkomendasikan menggunakan UserInputService alih-alih objek Mouse di pekerjaan baru.


Contoh Kode

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

Diaktifkan saat tombol kanan mouse dilepaskan.


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

Untuk informasi tentang cara mendapatkan objek Mouse, silakan lihat halaman Mouse.

Pengembang dapat mengetahui posisi mouse di ruang dunia, dan jika itu menunjuk ke salah satu BasePart menggunakan propperti Mouse.Hit dan Mouse.Target.

Catatan, pengembang direkomendasikan menggunakan UserInputService alih-alih objek Mouse di pekerjaan baru.


Contoh Kode

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

Diaktifkan selama setiap detak jantung bahwa mouse tidak diberikan ke acara mouse lainnya.

Catatan, acara ini seharusnya tidak digunakan untuk menentukan kapan mouse masih. Karena menembak setiap detak jantung, itu akan menembak di antara Mouse.Move acara.

Untuk informasi tentang cara mendapatkan objek Mouse, silakan lihat halaman Mouse.

Pengembang dapat mengetahui posisi mouse di ruang dunia, dan jika itu menunjuk ke salah satu BasePart menggunakan propperti Mouse.Hit dan Mouse.Target.

Catatan, pengembang direkomendasikan menggunakan UserInputService alih-alih objek Mouse di pekerjaan baru.


Contoh Kode

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

Diaktifkan saat mouse dibuka.

Catatan, acara ini diaktifkan ketika posisi mouse diperbarui, oleh karena itu akan menembak berulang kali saat diaktifkan.

Untuk informasi tentang cara mendapatkan objek Mouse, silakan lihat halaman Mouse.

Pengembang dapat mengetahui posisi mouse di ruang dunia, dan jika itu menunjuk ke salah satu BasePart menggunakan propperti Mouse.Hit dan Mouse.Target.


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

Catatan, pengembang direkomendasikan menggunakan UserInputService alih-alih objek Mouse di pekerjaan baru.


Contoh Kode

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

Acara WheelBackward menyebut saat roda mouse di geser ke belakang. Kemungkinan penggunaan untuk acara ini termasuk menggeser skop sebuah senjata di pemain pertama (FPS) atau menge zooming kamera pemain.

Ini dapat digunakan bersama dengan acara geser ke depan, Mouse.WheelForward .

Untuk informasi tentang cara mendapatkan objek Mouse, silakan lihat halaman Mouse.

Catatan, pengembang direkomendasikan menggunakan UserInputService alih-alih objek Mouse di pekerjaan baru.


Contoh Kode

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

Acara WheelForward diaktifkan ketika roda mouse di geser ke depan. Kemungkinan penggunaan untuk acara ini termasuk menggeser skop sebuah senjata di pemain pertama (FPS) atau menyetir kamera pemain.

Ini dapat digunakan bersama dengan acara geser ke belakang, Mouse.WheelBackward .

Untuk informasi tentang cara mendapatkan objek Mouse, silakan lihat halaman Mouse.

Catatan, pengembang direkomendasikan menggunakan UserInputService alih-alih objek Mouse di pekerjaan baru.


Contoh Kode

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)