Mouse
*Ta zawartość została przetłumaczona przy użyciu narzędzi AI (w wersji beta) i może zawierać błędy. Aby wyświetlić tę stronę w języku angielskim, kliknij tutaj.
Myszka została zastąpiona przez UserInputService i ContextActionService, które pokrywają szerszy zakres, są bardziej bogate w funkcje i wspierają lepiej 0> wzory krzyżowe0>. Wciąż jest wspierane ze względu na jego powszechne użycie, ale powinieneś bardzo rozważyć użycie tych alternatyw.
Obiekt Myszka zawiera różne API dla wskaźników, głównie dla przycisków i raycastingu. Można na niego uzyskać poprzez Player:GetMouse() wezwany na Players.LocalPlayer w 2>Class.LocalScript2>. Jest również przekazywany przez wydarzenie 5>Class.Tool.Equipped</
- Jest najbardziej znany z właściwości Icon, która zmienia wygląd kursora.
- Kontynuuje rzucanie miksturą ekranową na świat 3D, używając właściwości TargetFilter, przechowujące wyniki rzucania w Hit, <
-- Z lokalnego skryptu:local Players = game:GetService("Players")local player = Players.LocalPlayerlocal mouse = player:GetMouse()-- Ustawienie ikony ikonamouse.Icon = "rbxasset://SystemCursors/Wait"
Notatka:
Ten obiekt nie kontroluje/ogranicza ruchu wskaźnika. Dla tego, zobacz UserInputService.MouseBehavior i UserInputService.MouseDeltaSensitivity .
Jeśli dwa funkcje są powiązane z tym samym wydarzeniem wejścia, takim jak Button1Down, both funkcje będą działać, gdy wydarzenie się uruchomi. Nie ma pojęcia o tonących/przekazywanych wejść, ponieważ wydarzenia nie wspierają tego zachowania. J
Podczas gdy myszka może nie być dostępna na wszystkich platformach, myszka nadal będzie działać na urządzeniach mobilnych ( dotykowych ) i konsoli (gamepad), które zwykle nie mają myszy lub sprzętu kierującego. Dla zachowań będących poza platformami użyj UserInputService i ContextActionService.
Zobacz Wejście i kamera dla więcej informacji na temat dostosowywania wejść w swoim doświadczeniu.
Podsumowanie
Właściwości
Datatype.CFrame pozycji myszy w przestrzeni 3D.
ikonatreści użytej jako ikony Mouse.
A CFrame położony na Workspace.CurrentCamera i skierowany w kierunku pozycji 3D względem mysz.
Przedmiot w przestrzeni 3D mouse apontuje do niego.
Określa obiekt (i jego potomstwo) do ignorowania podczas określenia Mouse.Hit i Mouse.Target.
Wskazuje Enum.NormalId powierzchnię, na której mieszkanie myszki.
A Ray skierowany w kierunku pozycji świata myszy, pochodzący z pozycji świata Workspace.CurrentCamera.
Opisuje szerokość okna gry w pikselach.
Opisuje wysokość okna gry w pikselach.
Opisuje komponent X (poziomy) pozycji myszy na ekranie.
Opisuje komponent Y (poziomowy) pozycji mysz.
Zdarzenia
Wystrzelony, gdy przycisk lewego myszy jest naciśnięty.
Wystrzeliwany, gdy przycisk lewego myszy zostanie uwolniony.
Wystrzeliwany, gdy jest nacięty odpowiedni przycisk myszy.
Wystrzelony, gdy przycisk prawego myszy zostanie uwolniony.
Wystrzelony podczas każdego bicia serca, że myszka nie jest przekazywana do innego wydarzenia myszy.
Wystrzelony, gdy myszka jest poruszana.
Wystrzela, gdy koło myszy jest przesunięte w tył.
Wystrzela, gdy koło myszy jest przesunięte w górę.
Właściwości
Hit
To właściwość wskazuje CFrame pozycji myszy w przestrzeni 3D. Uwaga, że Mouse.TargetFilter i jego potomstwo zostaną ignorowane.
Rozwój może uzyskać pozycję Hit jak segregator:
local position = mouse.Hit.Position
Uderzenie jest często używane przez Tools , aby wystrzelić broń w kierunku myszy w trybie trzecioosobistym.
Rozwijać BasePart myszkę wskazuje na użycie Mouse.Target .
Jak jest obliczany Mouse.Hit?
Pozycja Hit CFrame jest obliczana jako punkt intersekcji między wewnętrznym Ray (rozszerzoną wersją Mouse.UnitRay ) i obiektem w przestrzeni 3D (takim jak część).
Oriенacja klatki prawy odpowiada kierunkowi Mouse.UnitRay .
local unitRayDirection = mouse.UnitRay.Directionlocal mouseHitDirection = mouse.Hit.lookVector-- unitRayDirection ≈ mouseHitDirection-- the vectors are approximately equal
Uwaga, że rolowanie Workspace.CurrentCamera nie jest używane podczas obliczania orientacji przestrzeni Hit CFrame .
Wewnętrzny promień myszy rozciąga się o 1,000 jednostek. Jeśli myszka nie apuje na obiekt w przestrzeni 3D (na przykład, gdy apuje na niebo), ta właściwość będzie 1,000 jednostek od Workspace.CurrentCamera .
Przykłady kodu
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 jest właściwością, która określa obraz używany jako wskazówka. Jeśli pusty, używa się domyślną strzałkę. Podczas gdy kursor położony jest na GuiButton , ta właściwość jest tymczasowo ignorowana.
Aby całkowicie ukryć kursor, nie używaj przejrzystego obrazu – zamiast tego ustaw Class.UserInputService.MouseIconEnabled na false.
Aby uzyskać/ustновиć ikonę użytkownika w doświadczeniach, powinieneś użyć UserInputService.MouseIcon . Mouse.Icon będzie deprecji po uwolnieniu nowej API dla pluginów do ustawienia kursora myszy.
Projektowanie kursora
Poniższe wytyczne mogą się przydać podczas tworzenia własnych kursorów myszy:
- Wymiary używanej obrazu określają rozmiar kursora.
- Centrum obrazu jest gdzie wszystkie wejścia myszy są wydawane.
- Domyślny obraz myszy ma rozmiar 64x64 pikseli, z czego mysz zajmuje 17x24 pikseli przestrzeni.
System Cursors for PluginMouse
Gdy używasz PluginMouse z odzyskane z Plugin:GetMouse()
<tbody><tr><td><img src="../../../assets/legacy/Mouse-Icon-Pointer.png"></img></td><td><code>rbxasset://SystemCursors/Arrow</code></td><td>Domyślne kliknięcie i wyboru.</td></tr><tr><td><img src="../../../assets/legacy/Mouse-Icon-PointingHand.png"></img></td><td><code>rbxasset://SystemCursors/PointingHand</code></td><td>Przytrzymywanie nad aktywnym linkiem/przyciskiem.</td></tr><tr><td><img src="../../../assets/legacy/Mouse-Icon-OpenHand.png"></img></td><td><code>rbxasset://SystemCursors/OpenHand</code></td><td>Kolejka nad przedmiotem przeciąganym.</td></tr><tr><td><img src="../../../assets/legacy/Mouse-Icon-GrabbingHand.png"></img></td><td><code>rbxasset://SystemCursors/ClosedHand</code></td><td>Przeciągnięcie przedmiot.</td></tr><tr><td><img src="../../../assets/legacy/Mouse-Icon-IBeam.png"></img></td><td><code>rbxasset://SystemCursors/IBeam</code></td><td>Przytrzymywanie w polu tekstowym.</td></tr><tr><td><img src="../../../assets/legacy/Mouse-Icon-ResizeNS.png"></img></td><td><code>rbxasset://SystemCursors/SizeNS</code></td><td>Przytrzymywanie nad poziomem skalowania ręcznego.</td></tr><tr><td><img src="../../../assets/legacy/Mouse-Icon-ResizeEW.png"></img></td><td><code>rbxasset://SystemCursors/SizeEW</code></td><td>Przytrzymywanie nad poziomem skalowania poziomego.</td></tr><tr><td><img src="../../../assets/legacy/Mouse-Icon-ResizeNESW.png"></img></td><td><code>rbxasset://SystemCursors/SizeNESW</code></td><td>Przytrzymaj nad kątem zmień rozmiar uchwytu.</td></tr><tr><td><img src="../../../assets/legacy/Mouse-Icon-ResizeNWSE.png"></img></td><td><code>rbxasset://SystemCursors/SizeNWSE</code></td><td>Przytrzymaj nad kątem zmień rozmiar uchwytu.</td></tr><tr><td><img src="../../../assets/legacy/Mouse-Icon-ResizeAll.png"></img></td><td><code>rbxasset://SystemCursors/SizeAll</code></td><td>Przytrzymaj nad wielokierunkowym uchwytem rozmiarów.</td></tr><tr><td><img src="../../../assets/legacy/Mouse-Icon-ResizeSplitV.png"></img></td><td><code>rbxasset://SystemCursors/SplitNS</code></td><td>Przytrzymywanie nad poziomem podziału wertykalnego.</td></tr><tr><td><img src="../../../assets/legacy/Mouse-Icon-ResizeSplitH.png"></img></td><td><code>rbxasset://SystemCursors/SplitEW</code></td><td>Przytrzymywanie nad poziomem „podzielenia” poziomego.</td></tr><tr><td><img src="../../../assets/legacy/Mouse-Icon-Forbidden.png"></img></td><td><code>rbxasset://SystemCursors/Forbidden</code></td><td>Kolejka nad zamkniętym/zakazanym przedmiotem.</td></tr><tr><td><img src="../../../assets/legacy/Mouse-Icon-Wait.png"></img></td><td><code>rbxasset://SystemCursors/Wait</code></td><td>Wskazanie, że jest trwająca akcja.</td></tr><tr><td><img src="../../../assets/legacy/Mouse-Icon-Busy.png"></img></td><td><code>rbxasset://SystemCursors/Busy</code></td><td>Wskazanie, że system jest zajęty.</td></tr><tr><td><img src="../../../assets/legacy/Mouse-Icon-Crosshair.png"></img></td><td><code>rbxasset://SystemCursors/Cross</code></td><td>Przyciągnięcie uwagi na obszarze selekcji przypinki.</td></tr></tbody>
Patrz\* | Zasób | Zalecane użycie |
---|
Te wyglądy są aprobatami - rzeczywisty wygląd zależy od twojego systemu operacyjnego.
Przykłady kodu
local Players = game:GetService("Players")
local mouse = Players.LocalPlayer:GetMouse()
mouse.Icon = "http://www.roblox.com/asset?id=163023520"
Origin
Właściwość pochodzenia Mouse jest CFrame wskazującym, skąd pochodzi myszka. Jest ona położona na Workspace.CurrentCamera i skierowana w kierunku pozycji 3D myszki.
Mouse.UnitRay Rozpoczyna się w tej samej pozycji co początek i rozciąga się o jeden stud w tym samym kierunku.
local unitRay = mouse.UnitRaylocal origin = mouse.Origin-- unitRay.Direction = p-- unitRay.Direction ≈ origin.lookVector
Dla pozycji Mouse w przestrzeni 3D, zobacz Mouse.Hit.
Przykłady kodu
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
Przedmiot w przestrzeni 3D mouse apontuje do niego.
Notatka:
- Jeśli Mouse.TargetFilter zostanie ustawiać, filtr targetu i jego potomstwa zostaną ignorowane.
- Gdy myszka nie wskazuje na BasePart, na przykład gdy wskazuje na niebo, cel będzie nulowy.
- Rozwój programistów szukających pozycji myszy w przestrzeni 3D powinien używać Mouse.Hit .
Przykłady kodu
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
Ta właściwość określa obiekt do ignorowania przez myszkę, gdy obliczasz Mouse.Hit i Mouse.Target. Potomstwo obiektu jest również ignorowane, więc możliwe jest ignorowanie wielu obiektów, takich jak ten, do któ
Właściwość może być ustawiona na dowolne Instance lub nil, na przykład:
local Players = game:GetService("Players")local player = Players.LocalPlayerlocal mouse = player:GetMouse()mouse.TargetFilter = workspace.Model
Uwaga, że Character z Players.LocalPlayer jest ignorowany przez myszkę automatycznie.
TargetSurface
To właściwość wskazuje na Enum.NormalId powierzchnię, na której kursór wskazuje. Ta właściwość pochodzi z pozycji świata myszy ( BasePart ) i części, do której kursór wskazuje ( Mouse.Hit ).
Ta właściwość nie ma sensu, gdy myszka nie wskazuje na część, na przykład gdy myszka wskazuje na niebo. W tym momencie ta właściwość jest ustawiona na "Prawo" pod tych warunkach. Przed użyciem tej właściwości sprawdź, czy celowanie myszki nie jest nulowe.
local Players = game:GetService("Players")local player = Players.LocalPlayerlocal mouse = player:GetMouse()-- Sprawdź, czy istnieje część, na którą myszka wskazujeif 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
Przykłady kodu
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
Właściwość UnitRay jest Ray kierowany w kierunku pozycji myszy w przestrzeni 3D (opisany przez Mouse.Hit ). Pochodzi z CFrame . Jak wszystkie promienie unitów, ma ona odległość 1.
local Players = game:GetService("Players")local player = Players.LocalPlayerlocal mouse = player:GetMouse()print(mouse.UnitRay.Direction.magnitude) -- Always 1
ViewSizeX
Właściwość ViewSizeX opisuje poziomowy składnik rozmiaru okna gry w pikselach.
Przykłady kodu
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
Właściwość ViewSizeY opisuje wertykalny komponent rozmiaru okna gry w pikselach. Długość ta uwzględnia przestrzeń używającą górnej listy.
Przykłady kodu
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)
Gdy wykrywa zmiany w pozycji myszy na ekranie, zaleca się używać ContextActionService:BindAction() z Enum.UserInputType.MouseMovement lub Class.UserInputService.InputChanged</
Właściwość X opisuje poziomową komponent pozycji myszy na ekranie. Pozycja jest mierzona w pikselach względem górnego lewego rogu, pod górą listwy. Ta właściwość może być używana wraz z Mouse.Y , aby wyprodukować Vector2 przedstawiający pozycję myszy:
local position = Vector2.new(mouse.X, mouse.Y)
Właściwość ta nie wstrzykuje Changed lub sygnału zwróconego z GetPropertyChangedSignal . Użyj więc wydarzenia Mouse.Move.
Przykłady kodu
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)
Gdy wykrywa zmiany w pozycji myszy na ekranie, zaleca się używać ContextActionService:BindAction() z Enum.UserInputType.MouseMovement lub Class.UserInputService.InputChanged</
Właściwość Y opisuje poziomową komponent pozycji myszy na ekranie. Pozycja jest mierzona w pikselach w stosunku do lewego górnego rogu, pod górą listy. Ta właściwość może być używana w połączeniu z Mouse.X , aby produkować Vector2 przedstawiający pozycję myszy:
local position = Vector2.new(mouse.X, mouse.Y)
Właściwość ta nie wstrzykuje Changed lub sygnału zwróconego z GetPropertyChangedSignal . Użyj więc wydarzenia Mouse.Move.
Przykłady kodu
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)
Metody
Zdarzenia
Button1Down
Przycisk1Down nawet się pali, gdy gracz naciśnie lewy przycisk myszy.
Można również uzyskać dostęp do niego z Tool. Na przykład, gdy jest umieszczony w LocalScript, kod poniżej drukuje Button1Down, gdy lewy przycisk myszy jest naciskany:
local Tool = script.Parent --Upewnij się, że jest to obiekt narzędzia
Tool.Equipped:Connect(function(Mouse)
Mouse.Button1Down:Connect(function()
print("Button1Down")
end)
end)
Rozwój może zbadać pozycję myszy w przestrzeni kosmicznej, a jeśli wskazuje na dowolne BasePart , używając właściwości Mouse.Hit i Mouse.Target.
Aby uzyskać obiekt myszy, zobacz stronę Mouse.
Uwaga, programiści są zalecani do użycia UserInputService zamiast obiektu Mouse w nowej pracy.
Przykłady kodu
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
Wystrzeliwany, gdy przycisk lewego myszy zostanie uwolniony.
Aby uzyskać obiekt Mouse, zobacz stronę Mouse.
Rozwój może ustalić pozycję myszy w przestrzeni kosmicznej, a czy jest ona skierowana na jakąkolwiek BasePart używając właściwości Mouse.Hit i Mouse.Target.
Uwaga, programiści są zalecani do użycia UserInputService zamiast obiektu Mouse w nowej pracy.
Przykłady kodu
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
Przycisk #Down nawet wtedy się pali, gdy gracz naciśnie swoje prawe przyciski myszy.
Można również uzyskać dostęp do niego z Tool. Na przykład, gdy jest umieszczony w LocalScript, kod poniżej drukuje Button2Down, gdy właściwy przycisk myszy zostanie naciśnięty:
local Tool = script.Parent --Upewnij się, że jest to obiekt narzędzia
Tool.Equipped:Connect(function(Mouse)
Mouse.Button2Down:Connect(function()
print("Button2Down")
end)
end).
Rozwój może zbadać pozycję myszy w przestrzeni kosmicznej, a jeśli wskazuje na dowolne BasePart , używając właściwości Mouse.Hit i Mouse.Target.
Aby uzyskać obiekt myszy, zobacz stronę Mouse.
Uwaga, programiści są zalecani do użycia UserInputService zamiast obiektu Mouse w nowej pracy.
Przykłady kodu
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
Wystrzelony, gdy przycisk prawego myszy zostanie uwolniony.
mouse.Button2Up:Connect(function()
print("button 2 up!")
end
Aby uzyskać obiekt Mouse, zobacz stronę Mouse.
Rozwój może ustalić pozycję myszy w przestrzeni kosmicznej, a czy jest ona skierowana na jakąkolwiek BasePart używając właściwości Mouse.Hit i Mouse.Target.
Uwaga, programiści są zalecani do użycia UserInputService zamiast obiektu Mouse w nowej pracy.
Przykłady kodu
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
Wystrzelony podczas każdego bicia serca, że myszka nie jest przekazywana do innego wydarzenia myszy.
Uwaga, ten wydarzenie nie powinien być używany do określenia, kiedy myszka jest jeszcze. Ponieważ on wstrzyma wszystkie bicia serca, będzie wstrzymać się między Mouse.Move wydarzeniami.
Aby uzyskać obiekt Mouse, zobacz stronę Mouse.
Rozwój może ustalić pozycję myszy w przestrzeni kosmicznej, a czy jest ona skierowana na jakąkolwiek BasePart używając właściwości Mouse.Hit i Mouse.Target.
Uwaga, programiści są zalecani do użycia UserInputService zamiast obiektu Mouse w nowej pracy.
Przykłady kodu
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
Wystrzelony, gdy myszka jest poruszana.
Uwaga, to wydarzenie jest uruchomione, gdy pozycja myszy jest aktualizowana, więc będzie ono się powtarzać, gdy jest przesuwane.
Aby uzyskać obiekt Mouse, zobacz stronę Mouse.
Rozwój może ustalić pozycję myszy w przestrzeni kosmicznej, a czy jest ona skierowana na jakąkolwiek BasePart używając właściwości Mouse.Hit i Mouse.Target.
mouse.Move:Connect(function()
local position = mouse.Hit.p
local target = mouse.Target
print(target, position)
end)
Uwaga, programiści są zalecani do użycia UserInputService zamiast obiektu Mouse w nowej pracy.
Przykłady kodu
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
Wydarzenie WheelBackward aktywuje się, gdy koło myszy jest przesuwane w tył. Możliwe użycia dla tego wydarzenia to włączanie zakresu broni w strzelbie w pierwszej osobie (strzelanki FPS) lub skalowanie kamery gracza.
Można go używać wraz ze zdarzeniem kierowania się do przodu, Mouse.WheelForward .
Aby uzyskać obiekt Mouse, zobacz stronę Mouse.
Uwaga, programiści są zalecani do użycia UserInputService zamiast obiektu Mouse w nowej pracy.
Przykłady kodu
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
Wydarzenie WheelForward wyrzuca się, gdy koło myszy jest przewijane do przodu. Możliwe użycia dla tego wydarzenia to włączanie zakresu broni w strzelbie w pierwszej osobie (strzelanki FPS) lub przewijanie kamery gracza.
Można go używać wraz ze zdarzeniem przewijania się do tyłu, Mouse.WheelBackward .
Aby uzyskać obiekt Mouse, zobacz stronę Mouse.
Uwaga, programiści są zalecani do użycia UserInputService zamiast obiektu Mouse w nowej pracy.
Przykłady kodu
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)