Mouse
*Konten ini diterjemahkan menggunakan AI (Beta) dan mungkin mengandung kesalahan. Untuk melihat halaman ini dalam bahasa Inggris, klik di sini.
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
-- Dari LocalScript:local Players = game:GetService("Players")local player = Players.LocalPlayerlocal mouse = player:GetMouse()-- Mengatur ikon mousemouse.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
Datatype.CFrame posisi mouse di ruang 3D.
ID konten gambar yang digunakan sebagai ikon Mouse .
A CFrame berada di posisi Workspace.CurrentCamera dan bergerak ke arah mouse 3D.
Objek di ruang 3D mouse yang menunjuk ke.
Mengidentifikasi objek (dan anak-anjungnya) yang harus diabaikan saat menentukan Mouse.Hit dan Mouse.Target .
Menunjukkan Enum.NormalId permukaan di mana mouse berada.
Sebuah Ray yang diarahkan ke posisi dunia mouse, berasal dari posisi dunia Workspace.CurrentCamera .
Menggambarkan lebar jendela permainan dalam pixel.
Menggambarkan tinggi jendela game dalam pixel.
Menggambarkan komponen X (vertikal) dari posisi mouse di layar.
Menggambarkan komponen Y (vertikal) dari posisi layar mouse.
Acara
Diaktifkan saat tombol kiri mouse ditekan.
Dibakar saat tombol kiri mouse dilepaskan.
Dibakar saat tombol kanan mouse ditekan.
Diaktifkan saat tombol kanan mouse dilepaskan.
Diaktifkan selama setiap detak jantung bahwa mouse tidak diberikan ke acara mouse lainnya.
Diaktifkan saat mouse dibuka.
Tembak ketika roda mouse di geser ke belakang.
Tembak ketika roda mouse di geser ke depan.
Properti
Hit
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.Directionlocal 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
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
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\* | Aset | Penggunaan yang Direkomendasikan |
---|
* Penampilan ini merupakan aproximasi - tampilan sebenarnya bergantung pada sistem operasi Anda.
Contoh Kode
local Players = game:GetService("Players")
local mouse = Players.LocalPlayer:GetMouse()
mouse.Icon = "http://www.roblox.com/asset?id=163023520"
Origin
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.UnitRaylocal origin = mouse.Origin-- unitRay.Direction = pusat.p-- unitRay.Direction ≈ origin.lookVector
Untuk posisi Mouse di ruang 3D, lihat Mouse.Hit.
Contoh Kode
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
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
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
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.LocalPlayerlocal mouse = player:GetMouse()mouse.TargetFilter = workspace.Model
Catat bahwa Character dari Players.LocalPlayer diabaikan oleh mouse secara otomatis.
TargetSurface
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.LocalPlayerlocal mouse = player:GetMouse()-- Periksa apakah ada bagian di mana mouse beradaif 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
Contoh Kode
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
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.LocalPlayerlocal mouse = player:GetMouse()print(mouse.UnitRay.Direction.magnitude) -- Always 1
ViewSizeX
Propiedad ViewSizeX menjelaskan komponen vertikal dari ukuran jendela game dalam pixel.
Contoh Kode
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
Prop ViewSizeY menjelaskan komponen vertikal dari ukuran jendela game dalam pixel. Panjang ini termasuk ruang yang digunakan oleh bilah atas.
Contoh Kode
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)
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
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)
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
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
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
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
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
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
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
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
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
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)