Mouse
*Ce contenu est traduit en utilisant l'IA (Beta) et peut contenir des erreurs. Pour consulter cette page en anglais, clique ici.
La souris a été remplacée par UserInputService et ContextActionService, qui couvrent un champ d'application plus large, sont plus riches en fonctionnalités et prennent en charge les modèles 0> cross-platform0> mieux. Il reste pris en charge en raison de son large usage, mais vous devriez fortement envisager l'utilisation de ces alternatives.
L'objet Souris héberge diverses API pour les pointeurs, principalement pour les boutons et le raycasting. Il peut être accédé via Player:GetMouse() appelé sur le Players.LocalPlayer dans un 1> Class.LocalScript1> . Il est également passé par l'événement 4> Class.Tool.Equipped
- Il est le plus remarquable pour la propriété Icon, qui change l'apparence du curseur.
- Il raycast toujours la position de la souris dans le monde 3D en utilisant la propriété TargetFilter, qui stocke les résultats du raycast dans le Hit, Target
- Plugins peut utiliser Plugin:GetMouse() pour obtenir un PluginMouse, qui fonctionne de la même façon.
-- À partir d'un script local :local Players = game:GetService("Players")local player = Players.LocalPlayerlocal mouse = player:GetMouse()-- Définir l'icône de la sourismouse.Icon = "rbxasset://SystemCursors/Wait"
Remarque :
Cet objet ne contrôle pas/restruit la déplacement des pointeurs. Pour cela, voir UserInputService.MouseBehavior et UserInputService.MouseDeltaSensitivity .
Si deux fonctions sont connectées à la même événement d'entrée, comme Button1Down , les deux fonctions seront exécutées lorsque l'événement se déclenche. Il n'y a pas de concept de couler/passer l'entrée, car les événements ne supportent pas ce comportement. Cependant, Class.ContextActionService
Bien qu'une souris puisse ne pas être disponible sur toutes les plates-formes, la souris fonctionnera toujours sur mobile (触) et console (gamepad), ce qui n'a généralement pas de souris ou de pointeurHardware. Pour les comportements croisés explicites, utilisez UserInputService et ContextActionService.
Voir entrée et caméra pour plus d'informations sur la personnalisation des entrées dans votre expérience.
Résumé
Propriétés
Le CFrame de la position de la souris dans l'espace 3D.
L'ID de contenu de l'image utilisée comme l'icône Mouse.
Un CFrame positionné à l'endroit Workspace.CurrentCamera et orienté vers la position 3D de la souris.
L'objet dans l'espace 3D auquel il pointe est mouse.
Détermine un objet (et ses descendants) à ignorer lors de la détermination de Mouse.Hit et Mouse.Target .
Indique le Enum.NormalId surface à laquelle la souris pointe.
Un Ray pointé vers la position du monde de la souris, originaire de la position du monde de la classe Workspace.CurrentCamera.
Détermine la largeur de la fenêtre de jeu en pixels.
Décrivez la hauteur de la fenêtre du jeu en pixels.
Décrivez le composant X ( horizontal ) de la position de la souris sur l'écran.
Décrivez le composant Y (vertical) de la position de l'écran de la souris.
Évènements
Tiré lorsque le bouton de souris gauche est appuyé.
Tire quand le bouton de gauche de la souris est relâché.
Se déclenche lorsque le bouton droit de la souris est pressé.
Tiré lorsque le bouton droit de la souris est relâché.
Tiré pendant chaque battement de cœur que la souris n'est pas passée à un autre événement de souris.
Tiré lorsque la souris est déplacée.
Tire quand la roue de la souris est déplaçée vers l'arrière.
Tire quand la roue de la souris est déplée vers l'avant.
Propriétés
Hit
Cette propriété indique CFrame de la position de la souris dans l'espace 3D. Remarquez que Mouse.TargetFilter et ses descendants seront ignorés.
Les développeurs peuvent obtenir la position de Hit comme suivant :
local position = mouse.Hit.Position
Hit est souvent utilisé par Tools pour tirer une arme vers la souris en troisième personne.
Les développeurs à la recherche du BasePart la souris est pointée sur devrait utiliser Mouse.Target .
Comment est-ce que Mouse.Hit est calculé ?
La position du Hit CFrame est calculée comme le point d'intersection entre le souris's internal Ray (une extension de Mouse.UnitRay ) et un objet dans l'espace 3D (tel qu'une partie).
L'orientation du Hit CFrame correspond à la direction du Mouse.UnitRay .
local unitRayDirection = mouse.UnitRay.Directionlocal mouseHitDirection = mouse.Hit.lookVector-- unitRayDirection ≈ mouseHitDirection-- the vectors are approximately equal
Remarquez que le défilement de la Workspace.CurrentCamera n'est pas utilisé lors du calcul de l'orientation du coup CFrame.
La rayon interne de la souris s'étend sur 1 000 studs. Si la souris ne pointe pas sur un objet dans l'espace 3D (par exemple lorsqu'elle pointe vers le ciel), cette propriété sera à 1 000 studs de la Workspace.CurrentCamera.
Échantillons de code
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
l'icône est une propriété qui détermine l'image utilisée comme pointeur. Si vide, une flèche par défaut est utilisée. Alors que le curseur passe sur un GuiButton, cette propriété est temporairement ignorée.
Pour cacher entièrement le curseur, ne pas utiliser une image transparente – au lieu de cela, définissez Class.UserInputService.MouseIconEnabled à false.
Pour obtenir/设置 l'icône de l'utilisateur dans les expériences, vous devriez utiliser UserInputService.MouseIcon . Mouse.Icon sera obsolète après la sortie de la nouvelle API pour les plugins pour définir le curseur de la souris.
Concevoir un curseur
Les lignes directrices suivantes peuvent être utiles lors de la création de vos propres curseurs de souris :
- Les dimensions de l'image utilisée déterminent la taille du curseur.
- Le centre de l'image est l'endroit où les entrées de la souris sont émises.
- L'image de souris par défaut est de 64x64 pixels, avec la souris prenant 17x24 pixels d'espace.
System Cursors for PluginMouse
Lors de l'utilisation d'un PluginMouse récupéré à partir de Class.Plugin:
<tbody><tr><td><img src="../../../assets/legacy/Mouse-Icon-Pointer.png"></img></td><td><code>rbxasset://SystemCursors/Arrow</code></td><td>Cliquez et sélectionnez par défaut.</td></tr><tr><td><img src="../../../assets/legacy/Mouse-Icon-PointingHand.png"></img></td><td><code>rbxasset://SystemCursors/PointingHand</code></td><td>Survole d'un lien/bouton actif.</td></tr><tr><td><img src="../../../assets/legacy/Mouse-Icon-OpenHand.png"></img></td><td><code>rbxasset://SystemCursors/OpenHand</code></td><td>Survole d'un itemfaisable.</td></tr><tr><td><img src="../../../assets/legacy/Mouse-Icon-GrabbingHand.png"></img></td><td><code>rbxasset://SystemCursors/ClosedHand</code></td><td>Faire glisser un item.</td></tr><tr><td><img src="../../../assets/legacy/Mouse-Icon-IBeam.png"></img></td><td><code>rbxasset://SystemCursors/IBeam</code></td><td>Survole dans un champ de texte.</td></tr><tr><td><img src="../../../assets/legacy/Mouse-Icon-ResizeNS.png"></img></td><td><code>rbxasset://SystemCursors/SizeNS</code></td><td>Passez la souris sur une poignée de redimensionnement verticale.</td></tr><tr><td><img src="../../../assets/legacy/Mouse-Icon-ResizeEW.png"></img></td><td><code>rbxasset://SystemCursors/SizeEW</code></td><td>Passez la souris sur une contrôleurde redimensionnement horizontale.</td></tr><tr><td><img src="../../../assets/legacy/Mouse-Icon-ResizeNESW.png"></img></td><td><code>rbxasset://SystemCursors/SizeNESW</code></td><td>Survolez une poignée de contrôleurd'un coin.</td></tr><tr><td><img src="../../../assets/legacy/Mouse-Icon-ResizeNWSE.png"></img></td><td><code>rbxasset://SystemCursors/SizeNWSE</code></td><td>Survolez une poignée de contrôleurd'un coin.</td></tr><tr><td><img src="../../../assets/legacy/Mouse-Icon-ResizeAll.png"></img></td><td><code>rbxasset://SystemCursors/SizeAll</code></td><td>Passez la souris sur une poignée de redimensionnement contrôleur.</td></tr><tr><td><img src="../../../assets/legacy/Mouse-Icon-ResizeSplitV.png"></img></td><td><code>rbxasset://SystemCursors/SplitNS</code></td><td>Survole d'une contrôleurverticale « split ».</td></tr><tr><td><img src="../../../assets/legacy/Mouse-Icon-ResizeSplitH.png"></img></td><td><code>rbxasset://SystemCursors/SplitEW</code></td><td>Survole d'une contrôleurhorizontale « diviser ».</td></tr><tr><td><img src="../../../assets/legacy/Mouse-Icon-Forbidden.png"></img></td><td><code>rbxasset://SystemCursors/Forbidden</code></td><td>Passez la souris sur un itemverrouillé/interdit.</td></tr><tr><td><img src="../../../assets/legacy/Mouse-Icon-Wait.png"></img></td><td><code>rbxasset://SystemCursors/Wait</code></td><td>Indiquer qu'une action est en cours.</td></tr><tr><td><img src="../../../assets/legacy/Mouse-Icon-Busy.png"></img></td><td><code>rbxasset://SystemCursors/Busy</code></td><td>Indication que le système est occupé.</td></tr><tr><td><img src="../../../assets/legacy/Mouse-Icon-Crosshair.png"></img></td><td><code>rbxasset://SystemCursors/Cross</code></td><td>Survole d'une zone de sélection de pin.</td></tr></tbody>
Regarde\* | Ressource | Utilisation recommandée |
---|
Ces apparences sont des approximations – le look réel dépend de votre système d'exploitation.
Échantillons de code
local Players = game:GetService("Players")
local mouse = Players.LocalPlayer:GetMouse()
mouse.Icon = "http://www.roblox.com/asset?id=163023520"
Origin
La propriété d'origine Mouse est une CFrame indiquant d'où l' souris a été originée. Elle est positionnée sur le Workspace.CurrentCamera et orientée vers la position 3D de la souris.
Mouse.UnitRay Commence à la même position que l'origine, et s'étend pour un stud dans la même direction.
local unitRay = mouse.UnitRaylocal origin = mouse.Origin-- unitRay.Direction = p de l'origine-- unitRay.Direction ≈ origin.lookVector
Pour la position de la Mouse dans l'espace 3D, voir Mouse.Hit.
Échantillons de code
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
L'objet dans l'espace 3D auquel il pointe est mouse.
Remarque :
- Si Mouse.TargetFilter a été configurer, le filtre de cible et ses descendants seront ignorés.
- Lorsque la souris n'est pas pointée sur un BasePart, par exemple lorsqu'elle pointe vers le ciel, la cible sera nulle.
- Les développeurs qui recherchent la position de la souris dans l'espace 3D devraient utiliser Mouse.Hit.
Échantillons de code
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
Cette propriété détermine un objet à ignorer par la souris lors du calcul de Mouse.Hit et Mouse.Target. Les descendants de l'objet sont également ignorés, il est donc possible d'ignorer plusieurs objets tant que ils sont des descendants de l'objet auquel cette propriété est configurer. Cette propriété est utile
Cette propriété peut être définie sur n'importe quelle Instance ou zéro, par exemple :
local Players = game:GetService("Players")local player = Players.LocalPlayerlocal mouse = player:GetMouse()mouse.TargetFilter = workspace.Model
Remarquez que le Character de la Players.LocalPlayer est ignoré par la souris automatiquement.
TargetSurface
Cette propriété indique le Enum.NormalId de la surface BasePart sur laquelle la souris pointe. Cette propriété est dérivée de la position de la souris dans le monde ( Mouse.Hit ) et de la partie vers laquelle la souris pointe ( 1> Class.Mouse.Target1> ).
Cette propriété n'a aucun sens lorsque la souris n'est pas pointée vers une partie, par exemple lorsque la souris pointe vers le ciel. À l'heure actuelle, cette propriété est réglée sur « Droit » sous ces conditions. Avant d'utiliser cette propriété, vérifiez que la cible de la souris n'est pas nulle.
local Players = game:GetService("Players")local player = Players.LocalPlayerlocal mouse = player:GetMouse()-- Vérifiez qu'il existe une partie à laquelle la souris pointeif 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
Échantillons de code
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
La propriété UnitRay est un Ray pointé vers la position de la souris dans l'espace 3D (définie par Mouse.Hit). Elle vient du CFrame de la 1> Class.Workspace.CurrentCamera1> . Comme tous les rayons d'unité, il a une distance de 1.
local Players = game:GetService("Players")local player = Players.LocalPlayerlocal mouse = player:GetMouse()print(mouse.UnitRay.Direction.magnitude) -- Always 1
ViewSizeX
La propriété ViewSizeX décrit la composante horizontale de la taille de la fenêtre dans les pixels.
Échantillons de code
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
La propriété ViewSizeY décrit la composante verticale de la taille de la fenêtre de jeu en pixels. Cette longueur inclut l'espace utilisé par la barre supérieure.
Échantillons de code
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)
Lors de la détection des modifications dans la position de la souris sur l'écran, il est recommandé d'utiliser ContextActionService:BindAction() avec Enum.UserInputType.MouseMovement ou Class.UserInputService.InputChanged
La propriété X décrit la composante horizontale de la position de la souris sur l'écran. La position est mesurée en pixels par rapport au coin supérieur gauche, sous le coin supérieur. Cette propriété peut être utilisée en conjonction avec Mouse.Y pour produire un Vector2 représentant la position de la souris :
local position = Vector2.new(mouse.X, mouse.Y)
Cette propriété ne déclenche pas Changed ou le signal renvoyé par GetPropertyChangedSignal. Utilisez l'événement Mouse.Move à la place.
Échantillons de code
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)
Lors de la détection des modifications dans la position de la souris sur l'écran, il est recommandé d'utiliser ContextActionService:BindAction() avec Enum.UserInputType.MouseMovement ou Class.UserInputService.InputChanged
La propriété Y décrit la composante verticale de la position de la souris sur l'écran. La position est mesurée en pixels par rapport au coin supérieur gauche, sous le coin supérieur. Cette propriété peut être utilisée conjointement avec Mouse.X pour produire un Vector2 représentant la position de la souris :
local position = Vector2.new(mouse.X, mouse.Y)
Cette propriété ne déclenche pas Changed ou le signal renvoyé par GetPropertyChangedSignal. Utilisez l'événement Mouse.Move à la place.
Échantillons de code
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)
Méthodes
Évènements
Button1Down
Le bouton1Down se déclenche même lorsque le joueur appuie sur son bouton de souris gauche.
Ceci peut également être accédé à partir d'un Tool. Par exemple, lorsque placé dans un LocalScript, le code ci-dessous imprime le bouton1Down chaque fois que le bouton de souris gauche est pressé :
local Tool = script.Parent --assurez-vous que c'est un objet d'outil
Tool.Equipped:Connect(function(Mouse)
Mouse.Button1Down:Connect(function()
print("Button1Down")
end)
end)
Les développeurs peuvent trouver la position de la souris dans l'espace mondial, et si elle pointe sur n'importe quelle BasePart , en utilisant les propriétés Mouse.Hit et Mouse.Target.
Pour plus d'informations sur l'objet de souris, veuillez voir la page Mouse.
Note, les développeurs sont recommandés d'utiliser UserInputService au lieu de l'objet Mouse dans le nouveau travail.
Échantillons de code
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
Tire quand le bouton de gauche de la souris est relâché.
Pour plus d'informations sur l'objet Mouse, veuillez consulter la page Mouse.
Les développeurs peuvent trouver la position de la souris dans l'espace mondial, et si elle pointe vers n'importe quelle BasePart à l'aide des propriétés Mouse.Hit et Mouse.Target.
Note, les développeurs sont recommandés d'utiliser UserInputService au lieu de l'objet Mouse dans le nouveau travail.
Échantillons de code
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
Le bouton2down se déclenche même lorsque le joueur appuie sur leur bouton droit de la souris.
Ceci peut également être accédé à partir d'un Tool. Par exemple, lorsque placé dans un LocalScript, le code ci-dessous imprime le bouton2Down chaque fois que le bon bouton de la souris est pressé :
local Tool = script.Parent --assurez-vous que c'est un objet d'outil
Tool.Equipped:Connect(function(Mouse)
Mouse.Button2Down:Connect(function()
print("Button2Down")
end)
end).
Les développeurs peuvent trouver la position de la souris dans l'espace mondial, et si elle pointe sur n'importe quelle BasePart , en utilisant les propriétés Mouse.Hit et Mouse.Target.
Pour plus d'informations sur l'objet de souris, veuillez voir la page Mouse.
Note, les développeurs sont recommandés d'utiliser UserInputService au lieu de l'objet Mouse dans le nouveau travail.
Échantillons de code
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
Tiré lorsque le bouton droit de la souris est relâché.
mouse.Button2Up:Connect(function()
print("button 2 up!")
end
Pour plus d'informations sur l'objet Mouse, veuillez consulter la page Mouse.
Les développeurs peuvent trouver la position de la souris dans l'espace mondial, et si elle pointe vers n'importe quelle BasePart à l'aide des propriétés Mouse.Hit et Mouse.Target.
Note, les développeurs sont recommandés d'utiliser UserInputService au lieu de l'objet Mouse dans le nouveau travail.
Échantillons de code
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
Tiré pendant chaque battement de cœur que la souris n'est pas passée à un autre événement de souris.
Remarquez que cet événement ne devrait pas être utilisé pour déterminer quand la souris est toujours. En déclenchant chaque battement de cœur, il se déclenchera entre les événements Mouse.Move.
Pour plus d'informations sur l'objet Mouse, veuillez consulter la page Mouse.
Les développeurs peuvent trouver la position de la souris dans l'espace mondial, et si elle pointe vers n'importe quelle BasePart à l'aide des propriétés Mouse.Hit et Mouse.Target.
Note, les développeurs sont recommandés d'utiliser UserInputService au lieu de l'objet Mouse dans le nouveau travail.
Échantillons de code
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
Tiré lorsque la souris est déplacée.
Remarquez que cet événement est déclenché lorsque la position de la souris est mise à jour, donc il sera déclenché à plusieurs reprises pendant qu'il est déplacé.
Pour plus d'informations sur l'objet Mouse, veuillez consulter la page Mouse.
Les développeurs peuvent trouver la position de la souris dans l'espace mondial, et si elle pointe vers n'importe quelle BasePart à l'aide des propriétés Mouse.Hit et Mouse.Target.
mouse.Move:Connect(function()
local position = mouse.Hit.p
local target = mouse.Target
print(target, position)
end)
Note, les développeurs sont recommandés d'utiliser UserInputService au lieu de l'objet Mouse dans le nouveau travail.
Échantillons de code
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
L'événement WheelBackward se déclenche lorsque la molette de la souris est tirée vers l'arrière. Les utilisations possibles pour cet événement incluent la mise à niveau du champ de vision d'un fusil à pompe (FPS) ou la mise à zoom de la caméra du joueur.
Ceci peut être utilisé en tant que complément à l'événement de défilement en avant, Mouse.WheelForward.
Pour plus d'informations sur l'objet Mouse, veuillez consulter la page Mouse.
Note, les développeurs sont recommandés d'utiliser UserInputService au lieu de l'objet Mouse dans le nouveau travail.
Échantillons de code
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
L'événement WheelForward se déclenche lorsque la molette de la souris est tirée vers l'avant. Les utilisations possibles pour cet événement incluent la mise à niveau du champ de vision d'un fusil à pompe (FPS) ou la mise à zoom de la caméra du joueur.
Ceci peut être utilisé avec l'événement de défilement vers l'arrière, Mouse.WheelBackward .
Pour plus d'informations sur l'objet Mouse, veuillez consulter la page Mouse.
Note, les développeurs sont recommandés d'utiliser UserInputService au lieu de l'objet Mouse dans le nouveau travail.
Échantillons de code
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)