Mouse
*Dieser Inhalt wurde mit KI (Beta) übersetzt und kann Fehler enthalten. Um diese Seite auf Englisch zu sehen, klicke hier.
Maus wurde von UserInputService und ContextActionService übertroffen, die ein breiteres Spektrum abdecken, mehr Funktionen bieten und 0>Cross-Platform-Muster0> besser unterstützen. Es wird weiterhin unterstützt, da es aufgrund seiner breit angelegten Verwendung weit verbreitet ist, aber Sie sollten diese Alternativen stark in Betracht ziehen.
Das Maus-Objekt beherbergt verschiedene API für Zeiger, primär für Schaltflächen und Raycasting. Es kann über Player:GetMouse() aufgerufen werden, der auf dem Players.LocalPlayer aufruft, in einem 1> Class.LocalScript1> . Es wird auch durch das Ereignis 4> Class.Tool.Equipped
- Es ist am deutlichsten für die Icon Eigenschaften, die die Aussehen des Cursors ändert.
- Es raycastет ständig die Bildschirmposition in die 3D-Welt mit der EigenschaftenTargetFilter, die die Ergebnisse des Raycast in der Hit, Target
-- Von einem LocalScript:local Players = game:GetService("Players")local player = Players.LocalPlayerlocal mouse = player:GetMouse()-- Einstellung des Maus-Symbolsmouse.Icon = "rbxasset://SystemCursors/Wait"
Hinweis:
Dieses Objekt kontrolliert/beschränkt nicht den Punkt-Bewegung. For this, see UserInputService.MouseBehavior and UserInputService.MouseDeltaSensitivity .
Wenn zwei Funktionen mit demselben Ereignisevent verbunden sind, wie z. B. Button1Down, both Funktionen laufen, wenn das Ereignis ausgelöst wird. Es gibt kein Konzept von sinkenden/passenden Eingaben, da Ereignisse dieses Verhalten nicht unterstützen. jedoch ContextActionService
Während eine Maus auf allen Plattformen nicht verfügbar sein kann, wird Mouse auf mobilen (Touch) und Konsole (Gamepad) immer noch funktionieren, was normalerweise keine Mäuse oder Pointer-Hardware haben. Für einige exklusive Cross-Platform-Verhaltensweisen verwenden Sie UserInputService und ContextActionService.
Siehe Eingabe und Kamera für weitere Informationen zum Anpassen von Eingaben in deiner Erlebnis.
Zusammenfassung
Eigenschaften
Die CFrame der Mausposition im Platz.
Die Bild-ID des verwendeten Bildes als Mouse-Symbol.
Ein CFrame mit der Positionierung an der Workspace.CurrentCamera und dem Ausrichten auf die 3D-Position des Maus.
Das Objekt in 3D-Raum zeigt auf das mouse .
Bestimmt ein Objekt (und seine Nachkommen), die ignoriert werden sollen, wenn das Mouse.Hit und das Mouse.Target festgelegt werden.
Zeigt die Enum.NormalId Oberfläche, auf der die Maus zeigt.
Ein Ray zeigt sich in Richtung der Maus-Position, der aus der Workspace.CurrentCamera Position stammt.
Beschreibt die Breite des Spielfensters in Pixeln.
Beschreibt die Höhe des Spielfensters in Pixel.
Beschreibt den X (vertikalen) Komponenten der Mausposition auf dem Bildschirm.
Beschreibt den Y-komponenten (vertikal) der Mausposition.
Ereignisse
Feuert, wenn die linke Maustaste gedrückt wird.
Feuert, wenn die linke Maustaste freigelassen wird.
Feuert, wenn die rechte Maustaste gedrückt wird.
Fired, wenn die rechte Maustaste freigelassen wird.
Feuert während jedes Herzschlags, dass die Maus nicht an ein anderes Maus-Ereignis übergeben wird.
Feuert, wenn die Maus bewegt wird.
Feuert, wenn das Mäuserrad nach hinten gesendet wird.
Feuert, wenn das Mausrad nach vorne gesendet wird.
Eigenschaften
Hit
Dieses Eigenschaft zeigt CFrame der Position der Maus im Platz. Beachten Sie, dass Mouse.TargetFilter und seine Nachkommen ignoriert werden.
Entwickler können die Position von Hit wie folgt erhalten:
local position = mouse.Hit.Position
Hit wird oft von Tools verwendet, um eine Waffe in Richtung der Maus in der dritten Person zu feuern.
Entwickler, die nach dem BasePart suchen, zeigen mit der Maus auf Mouse.Target.
Wie wird Mouse.Hit berechnet?
Die Position des Hit CFrame wird als Punkt der Intersektion zwischen der internen Ray (eine erweiterte Version von Mouse.UnitRay ) und einem Objekt im 3D-Raum berechnet (z. B. ein Teil).
Die Ausrichtung des Hit CFrame entspricht der Richtung des Mouse.UnitRay .
local unitRayDirection = mouse.UnitRay.Directionlocal mouseHitDirection = mouse.Hit.lookVector-- unitRayDirection ≈ mouseHitDirection-- the vectors are approximately equal
Beachten Sie, dass die Rolle der Workspace.CurrentCamera nicht verwendet wird, wenn die Ausrichtung des Treffers CFrame berechnet wird.
Der interne Ray des Mauses erstreckt sich für 1.000 Studs. Wenn die Maus nicht auf ein Objekt im 3D-Raum zeigt (z. B. wenn sie auf den Himmel zeigt), wird diese Eigenschaft 1.000 Studs von der Workspace.CurrentCamera entfernt.
Code-Beispiele
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 ist eine Eigenschaft, die das verwendete Bild als Pfeil festlegen. Wenn leer, wird eine Standardpfeil verwendet. Während der Cursor über einem GuiButton schwebt, wird diese Eigenschaft vorübergehend ignoriert.
Um den Cursor vollständig auszublenden, verwenden Sie keine durchsichtige Bild, stattdessen setzen Sie UserInputService.MouseIconEnabled auf false.
Um das Benutzer-Maus-Icon in Erlebnissen zu erhalten/zu setzen, solltest du UserInputService.MouseIcon verwenden. Mouse.Icon wird nach der Veröffentlichung der neuen API für Plugins deprecated.
Entwerfen eines Cursors
Die folgenden Richtlinien können nützlich sein, wenn Sie Ihre eigenen Maus-Cursores erstellen:
- Die Dimensionen des verwendeten Bildes bestimmen die Größe des Cursors.
- Das Zentrum des Bildes ist der Ort, an dem die Maus-Eingaben ausgegeben werden.
- Die Standard-Mausbild ist 64x64 Pixel, mit der die Maus 17x24 Pixel des Platzes belegt.
System Cursors for PluginMouse
Wenn Sie ein PluginMouse von Plugin:GetMouse() verwenden, können Sie
<tbody><tr><td><img src="../../../assets/legacy/Mouse-Icon-Pointer.png"></img></td><td><code>rbxasset://SystemCursors/Arrow</code></td><td>Standard-Klicken und Auswahl.</td></tr><tr><td><img src="../../../assets/legacy/Mouse-Icon-PointingHand.png"></img></td><td><code>rbxasset://SystemCursors/PointingHand ]</code></td><td>Über einen aktiven Link/Button schweben.</td></tr><tr><td><img src="../../../assets/legacy/Mouse-Icon-OpenHand.png"></img></td><td><code>rbxasset://SystemCursors/OpenHand</code></td><td>Bewegen Sie den Mauszeiger über ein ziehbares Artikel.</td></tr><tr><td><img src="../../../assets/legacy/Mouse-Icon-GrabbingHand.png"></img></td><td><code>rbxasset://SystemCursors/ClosedHand</code></td><td>Ziehen eines Artikel.</td></tr><tr><td><img src="../../../assets/legacy/Mouse-Icon-IBeam.png"></img></td><td><code>rbxasset://SystemCursors/IBeam</code></td><td>Schweben in einem Textfeld.</td></tr><tr><td><img src="../../../assets/legacy/Mouse-Icon-ResizeNS.png"></img></td><td><code>rbxasset://SystemCursors/SizeNS</code></td><td>Bewegen Sie den Mauszeiger über einen vertikalen Ziehpunkt.</td></tr><tr><td><img src="../../../assets/legacy/Mouse-Icon-ResizeEW.png"></img></td><td><code>rbxasset://SystemCursors/SizeEW</code></td><td>Über einem horizontalen Ziehpunktschweben.</td></tr><tr><td><img src="../../../assets/legacy/Mouse-Icon-ResizeNESW.png"></img></td><td><code>rbxasset://SystemCursors/SizeNESW</code></td><td>Bewegen Sie den Mauszeiger über einen Ecke, um den Ziehpunktzu vergrößern.</td></tr><tr><td><img src="../../../assets/legacy/Mouse-Icon-ResizeNWSE.png"></img></td><td><code>rbxasset://SystemCursors/SizeNWSE</code></td><td>Bewegen Sie den Mauszeiger über einen Ecke, um den Ziehpunktzu vergrößern.</td></tr><tr><td><img src="../../../assets/legacy/Mouse-Icon-ResizeAll.png"></img></td><td><code>rbxasset://SystemCursors/SizeAll</code></td><td>Bewegen Sie den Mauszeiger über einen mehrere Richtungen skalierenden Ziehpunkt.</td></tr><tr><td><img src="../../../assets/legacy/Mouse-Icon-ResizeSplitV.png"></img></td><td><code>rbxasset://SystemCursors/SplitNS</code></td><td>Über eine vertikale "Split"Ziehpunkt.</td></tr><tr><td><img src="../../../assets/legacy/Mouse-Icon-ResizeSplitH.png"></img></td><td><code>rbxasset://SystemCursors/SplitEW</code></td><td>Über eine horizontale "Split"Ziehpunkt.</td></tr><tr><td><img src="../../../assets/legacy/Mouse-Icon-Forbidden.png"></img></td><td><code>rbxasset://SystemCursors/Forbidden.</code></td><td>Über ein gesperrtes/verbotenes Artikelfahren.</td></tr><tr><td><img src="../../../assets/legacy/Mouse-Icon-Wait.png"></img></td><td><code>rbxasset://SystemCursors/Wait</code></td><td>Zeigt an, dass eine Aktion in Bearbeitung ist.</td></tr><tr><td><img src="../../../assets/legacy/Mouse-Icon-Busy.png"></img></td><td><code>rbxasset://SystemCursors/Busy</code></td><td>Zeigt an, dass das System beschäftigt ist.</td></tr><tr><td><img src="../../../assets/legacy/Mouse-Icon-Crosshair.png"></img></td><td><code>rbxasset://SystemCursors/Cross</code></td><td>Bewegen Sie den Mauszeiger über eine Pinpoint-Auswahlbereich.</td></tr></tbody>
Sieh\* | Asset | Vorgeschlagene Verwendung |
---|
Diese Ansichten sind Animationen - der tatsächliche Look hängt von Ihrem Betriebssystem ab.
Code-Beispiele
local Players = game:GetService("Players")
local mouse = Players.LocalPlayer:GetMouse()
mouse.Icon = "http://www.roblox.com/asset?id=163023520"
Origin
Die Herkunft Mouse Eigenschaft ist ein CFrame , das anzeigt, wo die Maus herkommt. Es wird an der Workspace.CurrentCamera positioniert und in Richtung der 3D-Position des Maus positioniert.
Mouse.UnitRay startet in der gleichen Position wie der Ursprung und erstreckt sich für einen Stud in die gleiche Richtung.
local unitRay = mouse.UnitRaylocal origin = mouse.Origin-- unitRay.Direction = pf.p-- unitRay.Direction ≈ origin.lookVector
Für die Position des Mouse in Platz, siehe Mouse.Hit.
Code-Beispiele
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
Das Objekt in 3D-Raum zeigt auf das mouse .
Hinweis:
- Wenn Mouse.TargetFilter festlegenwurde, wird der Zielfilter und seine Nachkommen ignoriert.
- Wenn die Maus nicht auf ein BasePart zeigt, z. B. wenn sie auf den Himmel zeigt, wird Target null sein.
- Entwickler, die die Position der Maus im 3D-Raum suchen, sollten Mouse.Hit verwenden.
Code-Beispiele
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
Dieses Eigenschaft bestimmt ein Objekt, das von der Maus ignoriert wird, wenn das Calculating Mouse.Hit und Mouse.Target . Die Nachkommen des Objekts werden auch ignoriert, so dass es möglich ist, mehrere Objekte zu ignorieren, solange sie ein Nachkommen des Objekts sind, auf das
Diese Eigenschaft kann auf eine beliebige Instance oder null eingestellt werden, z. B.:
local Players = game:GetService("Players")local player = Players.LocalPlayerlocal mouse = player:GetMouse()mouse.TargetFilter = workspace.Model
Beachten Sie, dass die Character des Players.LocalPlayer automatisch ignoriert wird.
TargetSurface
Dieses Eigenschaft zeigt die Enum.NormalId -Oberfläche der Maus, auf der die Maus zeigt. Dieses Eigenschaft basiert auf der Weltposition der Maus ( BasePart ) und dem Teil, auf den die Maus zeigt ( Mouse.Hit ).
Dieses Eigenschaft ist nicht bedeutungsvoll, wenn die Maus nicht auf ein Teil zeigt, zum Beispiel wenn die Maus in den Himmel zeigt. Derzeit ist diese Eigenschaft auf "Rechts" unter diesen Bedingungen eingestellt. Bevor Sie diese Eigenschaftenverwenden, überprüfen Sie, dass das Ziel der Maus nicht null ist.
local Players = game:GetService("Players")local player = Players.LocalPlayerlocal mouse = player:GetMouse()-- Überprüfen, ob es ein Teil gibt, auf das die Maus zeigtif 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
Code-Beispiele
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
Die UnitRay-Eigenschaft ist ein Ray , der sich in Richtung der MausPosition im 3D-Raum bewegt (beschrieben von Mouse.Hit ). Es stammt aus dem CFrame der Class.Arbeitsbereich.CurrentCamera . Wie alle Einheitsstrahlen hat es eine Entfernung von 1.
local Players = game:GetService("Players")local player = Players.LocalPlayerlocal mouse = player:GetMouse()print(mouse.UnitRay.Direction.magnitude) -- Always 1
ViewSizeX
Die ViewSizeX-Eigenschaft beschreibt die horizontale Komponente der Größe des Spielfensters in Pixel.
Code-Beispiele
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
Die ViewSizeY-Eigenschaft beschreibt die vertikale Komponente der Größe des Spielfensters in Pixel. Diese Länge enthält die Platzierung der oberen Leiste.
Code-Beispiele
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)
Wenn Sie Änderungen in der Position der Maus auf dem Bildschirm erkennen, empfehlen wir Ihnen, ContextActionService:BindAction() mit Enum.UserInputType.MouseMovement oder UserInputService.InputChanged zu verwenden
Die X-Eigenschaft beschreibt die horizontale Komponente der Mausposition auf dem Bildschirm. Die Position wird in Pixeln относительно der oberen linken Ecke, unter der oberen Leiste, gemessen. Diese Eigenschaft kann in Kombination mit Mouse.Y verwendet werden, um eine Vector2 zu erzeugen, die die Position des Mauszeigers repräsentiert:
local position = Vector2.new(mouse.X, mouse.Y)
Diese Eigenschaft feuert nicht Changed oder das Signal zurück, das von GetPropertyChangedSignal zurückgegeben wird. Verwenden Sie stattdessen das Ereignis Mouse.Move.
Code-Beispiele
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)
Wenn Sie Änderungen in der Position der Maus auf dem Bildschirm erkennen, empfehlen wir Ihnen, ContextActionService:BindAction() mit Enum.UserInputType.MouseMovement oder UserInputService.InputChanged zu verwenden
Die Y-Eigenschaft beschreibt die vertikale Komponente der Mausposition auf dem Bildschirm. Die Position wird in Pixeln относительно der oberen linken Ecke, unter der oberen Leiste, gemessen. Diese Eigenschaft kann in Kombination mit Mouse.X verwendet werden, um eine Vector2 zu produzieren, die die Position des Mauszeigers repräsentiert:
local position = Vector2.new(mouse.X, mouse.Y)
Diese Eigenschaft feuert nicht Changed oder das Signal zurück, das von GetPropertyChangedSignal zurückgegeben wird. Verwenden Sie stattdessen das Ereignis Mouse.Move.
Code-Beispiele
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)
Methoden
Ereignisse
Button1Down
Die Button1Down feuert sogar, wenn der Spieler seine linke Maustaste drückt.
Dies kann auch von einem Tool aus zugänglich sein. Zum Beispiel, wenn es in einem LocalScript platziert wird, druckt der Code unten Button1Down, wenn die linke Maustaste gedrückt wird:
local Tool = script.Parent --stellen Sie sicher, dass dies ein Werkzeug-Objekt ist
Tool.Equipped:Connect(function(Mouse)
Mouse.Button1Down:Connect(function()
print("Button1Down")
end)
end)
Entwickler können die Position der Maus in der Weltallumgebung finden und, wenn sie auf ein BasePart zeigt, verwenden Sie die Eigenschaften Mouse.Hit und Mouse.Target.
Für Informationen darüber, wie Sie das Objekterhalten, sehen Sie bitte die Mouse Seite.
Beachten Sie, dass Entwickler UserInputService verwenden, anstatt des Mouse -Objekts in neuer Arbeit.
Code-Beispiele
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
Feuert, wenn die linke Maustaste freigelassen wird.
Für Informationen darüber, wie Sie das Mouse Objekt erhalten, sehen Sie bitte die Mouse Seite.
Entwickler können die Position der Maus im Weltall finden, und wenn sie auf ein BasePart zeigt, indem sie auf die Eigenschaften Mouse.Hit und Mouse.Target zugreift.
Beachten Sie, dass Entwickler UserInputService verwenden, anstatt des Mouse -Objekts in neuer Arbeit.
Code-Beispiele
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
Der Button2Down feuert sogar, wenn der Spieler seine rechte Maustaste drückt.
Dies kann auch von einem Tool aus zugänglich sein. Zum Beispiel, wenn er in einem LocalScript platziert wird, druckt der Code unten Button2Down, wenn die richtige Maustaste gedrückt wird:
local Tool = script.Parent --stellen Sie sicher, dass dies ein Werkzeug-Objekt ist
Tool.Equipped:Connect(function(Mouse)
Mouse.Button2Down:Connect(function()
print("Button2Down")
end)
end).
Entwickler können die Position der Maus in der Weltallumgebung finden und, wenn sie auf ein BasePart zeigt, verwenden Sie die Eigenschaften Mouse.Hit und Mouse.Target.
Für Informationen darüber, wie Sie das Objekterhalten, sehen Sie bitte die Mouse Seite.
Beachten Sie, dass Entwickler UserInputService verwenden, anstatt des Mouse -Objekts in neuer Arbeit.
Code-Beispiele
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
Fired, wenn die rechte Maustaste freigelassen wird.
mouse.Button2Up:Connect(function()
print("button 2 up!")
end
Für Informationen darüber, wie Sie das Mouse Objekt erhalten, sehen Sie bitte die Mouse Seite.
Entwickler können die Position der Maus im Weltall finden, und wenn sie auf ein BasePart zeigt, indem sie auf die Eigenschaften Mouse.Hit und Mouse.Target zugreift.
Beachten Sie, dass Entwickler UserInputService verwenden, anstatt des Mouse -Objekts in neuer Arbeit.
Code-Beispiele
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
Feuert während jedes Herzschlags, dass die Maus nicht an ein anderes Maus-Ereignis übergeben wird.
Beachten Sie, dass dieses Ereignis nicht verwendet werden sollte, um zu bestimmen, wann die Maus immer noch ist. Wenn es jeden Herzschlag feuert, wird es zwischen Mouse.Move Ereignissen feuern.
Für Informationen darüber, wie Sie das Mouse Objekt erhalten, sehen Sie bitte die Mouse Seite.
Entwickler können die Position der Maus im Weltall finden, und wenn sie auf ein BasePart zeigt, indem sie auf die Eigenschaften Mouse.Hit und Mouse.Target zugreift.
Beachten Sie, dass Entwickler UserInputService verwenden, anstatt des Mouse -Objekts in neuer Arbeit.
Code-Beispiele
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
Feuert, wenn die Maus bewegt wird.
Beachten Sie, dass dieses Ereignis ausgelöst wird, wenn die Position des Maus aktualisiert wird, daher wird es während des Bewegungs wiederholt ausgeführt.
Für Informationen darüber, wie Sie das Mouse Objekt erhalten, sehen Sie bitte die Mouse Seite.
Entwickler können die Position der Maus im Weltall finden, und wenn sie auf ein BasePart zeigt, indem sie auf die Eigenschaften Mouse.Hit und Mouse.Target zugreift.
mouse.Move:Connect(function()
local position = mouse.Hit.p
local target = mouse.Target
print(target, position)
end)
Beachten Sie, dass Entwickler UserInputService verwenden, anstatt des Mouse -Objekts in neuer Arbeit.
Code-Beispiele
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
Das Nachlass-Ereignis wird ausgelöst, wenn das Mausrad nach hinten gesendet wird. Mögliche Verwendung für dieses Ereignis umfasst das Umschalten eines Schussfadenkreuzs in einem First-Person-Shooter (Ego-Shooter) oder das Ziehen der Kamera des Spieler:in.
Dies kann neben dem scrollenden vorwärts-Ereignis, Mouse.WheelForward , verwendet werden.
Für Informationen darüber, wie Sie das Mouse Objekt erhalten, sehen Sie bitte die Mouse Seite.
Beachten Sie, dass Entwickler UserInputService verwenden, anstatt des Mouse -Objekts in neuer Arbeit.
Code-Beispiele
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
Das Rad nach vorne-Ereignis wird ausgelöst, wenn das Mausrad nach vorne gesendet wird. Mögliche Verwendung für dieses Ereignis umfasst das Umschalten eines Schussfadenkreuzs in einem First-Person-Shooter (Ego-Shooter) oder das Ziehen der Kamera des Spieler:in.
Dies kann neben dem scrollenden rückwärts-Ereignis, Mouse.WheelBackward , verwendet werden.
Für Informationen darüber, wie Sie das Mouse Objekt erhalten, sehen Sie bitte die Mouse Seite.
Beachten Sie, dass Entwickler UserInputService verwenden, anstatt des Mouse -Objekts in neuer Arbeit.
Code-Beispiele
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)