Mouse
*Este contenido se traduce usando la IA (Beta) y puede contener errores. Para ver esta página en inglés, haz clic en aquí.
El ratón se ha visto superado por UserInputService y ContextActionService, que cubren un alcance más amplio, son más ricos en funciones y soportan mejor los patrones de plataforma cruzada .Sigue siendo compatible debido a su uso extendido, pero deberías considerar fuertemente el uso de estas alternativas.
El objeto Ratón alberga varias API para punteros, principalmente para botones y intersección rayo-superficie, emisión de rayos.Se puede acceder a través de Player:GetMouse() llamado en el Players.LocalPlayer en un LocalScript .También se pasa por el evento Tool.Equipped.
- Es más notable por la propiedad Icon, que cambia la aspecto, lookdel cursor.
- Continúa lanzando la posición del mouse de la pantalla en el mundo 3D usando la propiedad TargetFilter, almacenando los resultados del lanzamiento de rayos en las propiedades Hit, Target y TargetSurface.Estos pueden ser útiles para casos simples, pero deberían usarse en escenarios de raycasting más complicados .
- Plugins puede usar Plugin:GetMouse() para obtener un PluginMouse , que se comporta de manera similar.
-- Desde un LocalScript:local Players = game:GetService("Players")local player = Players.LocalPlayerlocal mouse = player:GetMouse()-- Establecer el icono del ratónmouse.Icon = "rbxasset://SystemCursors/Wait"
Nota:
Este objeto no controla/restringe el movimiento del puntero. Para esto, vea UserInputService.MouseBehavior y UserInputService.MouseDeltaSensitivity .
Si dos funciones están conectadas al mismo evento de entrada, como , ambas funciones se ejecutarán cuando se active el evento.No hay ningún concepto de entrada que se hunda/pase, ya que los eventos no admiten este comportamiento.Sin embargo, ContextActionService tiene este comportamiento a través de BindAction .
Si bien un mouse puede no estar disponible en todas las plataformas, el mouse seguirá funcionando en móvil (táctil) y consola (controlador para juego), que generalmente no tienen hardware de ratón o puntería.Para comportamientos explícitos de plataforma cruzada, utilice UserInputService y ContextActionService.
Vea Entrada y cámara para obtener más información sobre la personalización de las entradas en su experiencia.
Resumen
Propiedades
El CFrame de la posición del ratónen el espacio 3D.
El ID del contenido de la imagen utilizada como el íconoMouse.
Un CFrame posicionado en el Workspace.CurrentCamera y orientado hacia la posición 3D del ratón.
El objeto en el espacio 3D al que apunta el mouse está señalando.
Determina que un objeto (y sus descendientes) se ignoren al determinar Mouse.Hit y Mouse.Target .
Indica el Enum.NormalId de la superficie BasePart en la que apunta el ratón.
Un Ray dirigido hacia la posición del mundo del ratón, originado desde la posición del mundo Workspace.CurrentCamera.
Describe el ancho de la ventana del juego en píxeles.
Describe la altura de la ventana del juego en píxeles.
Describe el componente X (horizontal) de la posición del ratónen la pantalla.
Describe el componente Y (vertical) de la posición de la pantalla del ratón.
Eventos
Se enciende cuando se presiona el botón izquierdo del ratón.
Se activa cuando se suelta el botón izquierdo del ratón.
Se enciende cuando se presiona el botón derecho del ratón.
Se desvía cuando se suelta el botón derecho del ratón.
Despedido durante cada latido del corazón que el mouse no se está pasando a otro evento del ratón.
Se desfuega cuando el ratón se mueve.
Se enciende cuando la rueda del ratón se desplaza hacia atrás.
Se enciende cuando la rueda del ratón se desplaza hacia adelante.
Propiedades
Hit
Esta propiedad indica CFrame de la posición del ratónen el espacio 3D. Tenga en cuenta que Mouse.TargetFilter y sus descendientes se ignorarán.
Los desarrolladores pueden obtener la posición de Hit como así:
local position = mouse.Hit.Position
Hit es a menudo utilizado por Tools para disparar un arma hacia el mouse en tercera persona.
Los desarrolladores que buscan el BasePart el mouse está apuntando deberían usar Mouse.Target .
¿Cómo se calcula Mouse.Hit?
La posición del marco de golpe se calcula como el punto de intersección entre el punto interno del ratónRay (una versión extendida de Mouse.UnitRay) y un objeto en el espacio 3D (como una parte).
La orientación del marco de golpe coincide con la dirección del Mouse.UnitRay .
local unitRayDirection = mouse.UnitRay.Directionlocal mouseHitDirection = mouse.Hit.lookVector-- unitRayDirection ≈ mouseHitDirection-- the vectors are approximately equal
Tenga en cuenta que el rollo del Workspace.CurrentCamera no se usa al calcular la orientación del golpe CFrame.
El rayo interno del ratón se extiende por 1,000 studs.Si el mouse no está apuntando a un objeto en el espacio 3D (por ejemplo, al apuntar al cielo), esta propiedad estará a 1,000 tachuelas de distancia del Workspace.CurrentCamera .
Muestras de código
The code in this sample, when placed inside a LocalScript within StarterPlayerScripts will draw a red laser beam between the character's head and Mouse.Hit at all times.
Note, this beam will pass directly through obstructions in third person as the Mouse's raycasting is done from the Workspace.CurrentCamera not the head.
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)
The code below visualizes the difference between Mouse.Hit and Mouse.Origin. In order to do this, the code uses the Vector3 positions of the hit and origin CFrame values using .p.
The difference is that the origin is "where the mouse came from" (its origin) and the hit is the position where the mouse hits (is when the player presses their mouse).
This example also visualizes that the mouse origin is very similar to the position of the CurrentCamera by printing the magnitude (distance) between the two positions.
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
Icono es una propiedad que determina la imagen utilizada como puntero.Si está vacío, se usa una flecha predeterminada.Mientras el cursor se desplaza sobre un GuiButton, esta propiedad se ignora temporalmente.
Para ocultar por completo el cursor, no use una imagen transparente; en cambio, establezca UserInputService.MouseIconEnabled en falso.
Para obtener/establecer el icono del ratón del usuario en las experiencias, debe usar UserInputService.MouseIcon .Mouse.Icon se dejará de usar después de que se lance la nueva API para plugins para establecer el cursor del mouse.
Diseñar un cursor
Las siguientes directrices pueden ser útiles al crear tus propios cursores de ratón:
- Las dimensiones de la imagen utilizada determinan el tamaño del cursor.
- El centro de la imagen es donde se emiten las entradas del ratón.
- La imagen predeterminada del ratón es de 64x64 píxeles, con el ratón ocupando 17x24 píxeles de espacio.
Cursores del sistema
Al usar un PluginMouse recuperado de Plugin:GetMouse() , puedes usar los siguientes iconos similares a los cursores predeterminados de tu sistema, como manos, flechas, rayos, etc.Puedes usarlos con eventos de interfaz gráfica como MouseEnter, MouseLeave y MouseButton1Down para proporcionar una experiencia de Studio consistente al interactuar con ciertos tipos de componentes de interfaz gráfica.Tenga en cuenta que solo funcionan para plugins de Studio; no funcionarán para otros objetos Mouse .
<th>Activos</th><th>Uso recomendado</th></tr></thead><tbody><tr><td><img src="../../../assets/misc/Mouse-Icon-Pointer.png" width="30"></img></td><td><code>rbxasset://SystemCursors/Arrow</code></td><td>Clic y selección predeterminados.</td></tr><tr><td><img src="../../../assets/misc/Mouse-Icon-PointingHand.png" width="30"></img></td><td><code>rbxasset://SystemCursors/PointingHand</code></td><td>Pase el mouse sobre un enlace/botón activo.</td></tr><tr><td><img src="../../../assets/misc/Mouse-Icon-OpenHand.png" width="30"></img></td><td><code>rbxasset://SystemCursors/OpenHand</code></td><td>Pase el mouse sobre un objetoarrastrable.</td></tr><tr><td><img src="../../../assets/misc/Mouse-Icon-GrabbingHand.png" width="30"></img></td><td><code>rbxasset://SystemCursors/ClosedHand</code></td><td>Arrastrar un objeto.</td></tr><tr><td><img src="../../../assets/misc/Mouse-Icon-IBeam.png" width="30"></img></td><td><code>rbxasset://SystemCursors/IBeam</code></td><td>Pase el cursor sobre un campo de texto.</td></tr><tr><td><img src="../../../assets/misc/Mouse-Icon-ResizeNS.png" width="30"></img></td><td><code>rbxasset://SystemCursors/SizeNS</code></td><td>Pase el cursor sobre un controladorde redimensión vertical.</td></tr><tr><td><img src="../../../assets/misc/Mouse-Icon-ResizeEW.png" width="30"></img></td><td><code>rbxasset://SystemCursors/SizeEW</code></td><td>Pase el cursor sobre un controladorde redimensión horizontal.</td></tr><tr><td><img src="../../../assets/misc/Mouse-Icon-ResizeNESW.png" width="30"></img></td><td><code>rbxasset://SystemCursors/SizeNESW</code></td><td>Pase el cursor sobre un controladorde redimensionamiento de esquina.</td></tr><tr><td><img src="../../../assets/misc/Mouse-Icon-ResizeNWSE.png" width="30"></img></td><td><code>rbxasset://SystemCursors/SizeNWSE</code></td><td>Pase el cursor sobre un controladorde redimensionamiento de esquina.</td></tr><tr><td><img src="../../../assets/misc/Mouse-Icon-ResizeAll.png" width="30"></img></td><td><code>rbxasset://SystemCursors/SizeAll</code></td><td>Pase el mouse sobre un controladorde redimensión multidireccional.</td></tr><tr><td><img src="../../../assets/misc/Mouse-Icon-ResizeSplitV.png" width="30"></img></td><td><code>rbxasset://SystemCursors/SplitNS</code></td><td>Pase el cursor sobre un controladorvertical "división".</td></tr><tr><td><img src="../../../assets/misc/Mouse-Icon-ResizeSplitH.png" width="30"></img></td><td><code>rbxasset://SystemCursors/SplitEW</code></td><td>Pase el cursor sobre un controladorhorizontal "división".</td></tr><tr><td><img src="../../../assets/misc/Mouse-Icon-Forbidden.png" width="30"></img></td><td><code>rbxasset://SystemCursors/Forbidden</code></td><td>Pase el cursor sobre un objetobloqueado/prohibido.</td></tr><tr><td><img src="../../../assets/misc/Mouse-Icon-Wait.png" width="30"></img></td><td><code>rbxasset://SystemCursors/Wait</code></td><td>Indicando que una acción está en curso.</td></tr><tr><td><img src="../../../assets/misc/Mouse-Icon-Busy.png" width="30"></img></td><td><code>rbxasset://SystemCursors/Busy</code></td><td>Indicando que el sistema está ocupado.</td></tr><tr><td><img src="../../../assets/misc/Mouse-Icon-Crosshair.png" width="30"></img></td><td><code>rbxasset://SystemCursors/Cross</code></td><td>Pase el cursor sobre una zona de selección precisa.</td></tr></tbody>
Mirar* |
---|
Muestras de código
This example changes the Players.LocalPlayer mouse icon to look like a dragon image.
local Players = game:GetService("Players")
local mouse = Players.LocalPlayer:GetMouse()
mouse.Icon = "http://www.roblox.com/asset?id=163023520"
Origin
La propiedad de origen indica el origen de donde se originó el mouse.Está posicionado en el Workspace.CurrentCamera y orientado hacia la posición 3D del ratón.
Mouse.UnitRay comienza en la misma posición que el origen, y se extiende por un tachón en la misma dirección.
local unitRay = mouse.UnitRaylocal origin = mouse.Origin-- unitRay.Direction = origen.p-- unitRay.Direction ≈ origin.lookVector
Para la posición del Mouse en el espacio 3D, vea Mouse.Hit .
Muestras de código
The code below visualizes the difference between Mouse.Hit and Mouse.Origin. In order to do this, the code uses the Vector3 positions of the hit and origin CFrame values using .p.
The difference is that the origin is "where the mouse came from" (its origin) and the hit is the position where the mouse hits (is when the player presses their mouse).
This example also visualizes that the mouse origin is very similar to the position of the CurrentCamera by printing the magnitude (distance) between the two positions.
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
El objeto en el espacio 3D al que apunta el mouse está señalando.
Nota:
- Si Mouse.TargetFilter se ha establecer, se ignorará el filtro objetivo y sus descendientes.
- Cuando el mouse no apunta a un BasePart, por ejemplo, cuando apunta al cielo, el objetivo será nil .
- Los desarrolladores que buscan la posición del mouse en el espacio 3D deberían usar Mouse.Hit .
Muestras de código
The following code sample, when placed in StarterPlayerScripts will create a tool in the player's backpack that, once equipped, will change the BasePart.BrickColor of every BasePart the player clicks on.
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
Esta propiedad determina que un objeto sea ignorado por el mouse al calcular Mouse.Hit y Mouse.Target .Los descendientes del objeto también se ignoran, por lo que es posible ignorar múltiples objetos siempre que sean un descendiente del objeto al que se estableceresta propiedad.Esta propiedad es útil al filtrar modelos que contienen efectos especiales o decoraciones que no deberían afectar Mouse.Hit o Mouse.Target .
Esta propiedad se puede establecer a cualquier Instance o nil, por ejemplo:
local Players = game:GetService("Players")local Workspace = game:GetService("Workspace")local player = Players.LocalPlayerlocal mouse = player:GetMouse()mouse.TargetFilter = Workspace.Model
Tenga en cuenta que el Character de la Players.LocalPlayer se ignora automáticamente por el mouse.
TargetSurface
Esta propiedad indica el Enum.NormalId de la superficie BasePart en la que el mouse apunta.Esta propiedad se deriva de la posición mundial del mouse ( ) y de la parte hacia la que apunta el mouse ( ).
Esta propiedad no tiene sentido cuando el mouse no está apuntando a una parte, por ejemplo, cuando el mouse apunta al cielo.En este momento, esta propiedad está configurada como 'Derecha' en estas circunstancias.Antes de usar esta propiedad, compruebe que el objetivo del ratónno es nil .
local Players = game:GetService("Players")local player = Players.LocalPlayerlocal mouse = player:GetMouse()-- Compruebe que existe una parte a la que apunta el ratónif 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
Muestras de código
The code in this sample, when placed in a LocalScript inside StarterPlayerScripts will set the surface of any BasePart clicked on to a random surface.
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 propiedad UnitRay es un Ray dirigido hacia la posición del ratónen el espacio 3D (descrito por Mouse.Hit ).Procede del CFrame de la Workspace.CurrentCamera .Al igual que todos los rayos de unidad, tiene una distancia de 1.
local Players = game:GetService("Players")local player = Players.LocalPlayerlocal mouse = player:GetMouse()print(mouse.UnitRay.Direction.Magnitude) -- Always 1
ViewSizeX
La propiedad ViewSizeX describe el componente horizontal del tamaño de la ventana del juego en píxeles.
Muestras de código
This code sample shows how you can create a Vector2 representing the Mouse object's position on screen (X() and Y()) and the size of the screen itself (ViewSizeX() and ViewSizeY()). Using these, you can normalize the position of the mouse on-screen such that the top-left just under the topbar maps to (0, 0) and the bottom-right maps to (1, 1). This normalized position is calculated and printed as the mouse moves using the Move() event.
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 propiedad ViewSizeY describe el componente vertical del tamaño de la ventana del juego en píxeles. Esta longitud incluye el espacio utilizado por la barra superior.
Muestras de código
This code sample shows how you can create a Vector2 representing the Mouse object's position on screen (X() and Y()) and the size of the screen itself (ViewSizeX() and ViewSizeY()). Using these, you can normalize the position of the mouse on-screen such that the top-left just under the topbar maps to (0, 0) and the bottom-right maps to (1, 1). This normalized position is calculated and printed as the mouse moves using the Move() event.
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)
Al detectar cambios en la posición del ratónen la pantalla, se recomienda que uses ContextActionService:BindAction() con Enum.UserInputType.MouseMovement o UserInputService.InputChanged , que ambos describen la posición del mouse usando el Position (un Vector3 ) de un InputObject , en lugar de usar estas y otras propiedades relacionadas.
La propiedad X describe el componente horizontal de la posición del ratónen la pantalla.La posición se mide en píxeles con respecto a la esquina superior izquierda, debajo de la barra superior.Esta propiedad se puede usar junto con Mouse.Y para producir un Vector2 que represente la posición del ratón:
local position = Vector2.new(mouse.X, mouse.Y)
Esta propiedad no dispara Changed o la señal devuelta de GetPropertyChangedSignal . Usa el evento Mouse.Move en su lugar.
Muestras de código
This code sample shows how you can create a Vector2 representing the Mouse object's position on screen (X() and Y()) and the size of the screen itself (ViewSizeX() and ViewSizeY()). Using these, you can normalize the position of the mouse on-screen such that the top-left just under the topbar maps to (0, 0) and the bottom-right maps to (1, 1). This normalized position is calculated and printed as the mouse moves using the Move() event.
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)
Al detectar cambios en la posición del ratónen la pantalla, se recomienda que uses ContextActionService:BindAction() con Enum.UserInputType.MouseMovement o UserInputService.InputChanged , que ambos describen la posición del mouse usando el Position (un Vector3 ) de un InputObject , en lugar de usar estas y otras propiedades relacionadas.
La propiedad Y describe el componente vertical de la posición del ratónen la pantalla.La posición se mide en píxeles con respecto a la esquina superior izquierda, debajo de la barra superior.Esta propiedad se puede usar junto con Mouse.X para producir un Vector2 que represente la posición del ratón:
local position = Vector2.new(mouse.X, mouse.Y)
Esta propiedad no dispara Changed o la señal devuelta de GetPropertyChangedSignal . Usa el evento Mouse.Move en su lugar.
Muestras de código
This code sample shows how you can create a Vector2 representing the Mouse object's position on screen (X() and Y()) and the size of the screen itself (ViewSizeX() and ViewSizeY()). Using these, you can normalize the position of the mouse on-screen such that the top-left just under the topbar maps to (0, 0) and the bottom-right maps to (1, 1). This normalized position is calculated and printed as the mouse moves using the Move() event.
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étodos
Eventos
Button1Down
Este evento se activa cuando el jugador presiona el botón izquierdo del ratón.Tenga en cuenta que esto se puede acceder desde un Tool ; por ejemplo, cuando se coloca en un LocalScript , el código siguiente imprime Button1Down cada vez que se presiona el botón izquierdo del ratón.
local tool = script.Parent -- Asegúrate de que esto sea un objeto de herramienta
tool.Equipped:Connect(function(mouse)
mouse.Button1Down:Connect(function()
print("Button1Down")
end)
end)
Puedes encontrar la posición del mouse en el espacio mundial y si está apuntando a cualquier BasePart usando las propiedades Hit y Target.
Button1Up
Este evento se activa cuando el jugador suelta el botón izquierdo del ratón.Tenga en cuenta que esto se puede acceder desde un Tool ; por ejemplo, cuando se coloca en un LocalScript , el código siguiente imprime Button1Up cada vez que se suelta el botón izquierdo del ratón.
local tool = script.Parent -- Asegúrate de que esto sea un objeto de herramienta
tool.Equipped:Connect(function(mouse)
mouse.Button1Up:Connect(function()
print("Button1Up")
end)
end)
Puedes encontrar la posición del mouse en el espacio mundial y si está apuntando a cualquier BasePart usando las propiedades Hit y Target.
Button2Down
Este evento se activa cuando el jugador presiona el botón derecho del ratón.Tenga en cuenta que esto se puede acceder desde un Tool ; por ejemplo, cuando se coloca en un LocalScript , el código siguiente imprime Button2Down cada vez que se presiona el botón derecho del ratón.
local tool = script.Parent -- Asegúrate de que esto sea un objeto de herramienta
tool.Equipped:Connect(function(mouse)
mouse.Button2Down:Connect(function()
print("Button2Down")
end)
end)
Puedes encontrar la posición del mouse en el espacio mundial y si está apuntando a cualquier BasePart usando las propiedades Hit y Target.
Button2Up
Este evento se activa cuando el jugador suelta el botón derecho del ratón.Tenga en cuenta que esto se puede acceder desde un Tool ; por ejemplo, cuando se coloca en un LocalScript , el código siguiente imprime Button2Up cada vez que se suelta el botón derecho del ratón.
local tool = script.Parent -- Asegúrate de que esto sea un objeto de herramienta
tool.Equipped:Connect(function(mouse)
mouse.Button2Up:Connect(function()
print("Button2Up")
end)
end)
Puedes encontrar la posición del mouse en el espacio mundial y si está apuntando a cualquier BasePart usando las propiedades Hit y Target.
Idle
Despedido durante cada latido del corazón que el mouse no se está pasando a otro evento del ratón.
Nota, este evento no debe usarse para determinar cuándo el mouse está quieto. Como dispara cada latido de corazón, disparará entre Mouse.Move eventos.
Para obtener información sobre cómo obtener el objeto Mouse, consulte la página Mouse.
Los desarrolladores pueden averiguar la posición del mouse en el espacio mundial, y si está apuntando a cualquier BasePart usando las propiedades Mouse.Hit y Mouse.Target.
Nota, a los desarrolladores se les recomienda usar UserInputService en lugar del objeto Mouse en el nuevo trabajo.
Muestras de código
This example demonstrates how mouse events are passed during each frame
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
Se desfuega cuando el ratón se mueve.
Nota, este evento se dispara cuando se actualiza la posición del ratón, por lo tanto, se disparará repetidamente mientras se mueve.
Para obtener información sobre cómo obtener el objeto Mouse, consulte la página Mouse.
Los desarrolladores pueden averiguar la posición del mouse en el espacio mundial, y si está apuntando a cualquier BasePart usando las propiedades Mouse.Hit y Mouse.Target.
mouse.Move:Connect(function()
local position = mouse.Hit.p
local target = mouse.Target
print(target, position)
end)
Nota, a los desarrolladores se les recomienda usar UserInputService en lugar del objeto Mouse en el nuevo trabajo.
Muestras de código
The example below allows the local player to move parts with their mouse.
When the player presses their left mouse button over a part, that part is the mouse's target and becomes the point. Until the player releases their left mouse button, that part will move to the mouse's world position when the player moves their mouse.
Note that the Mouse.TargetFilter property allows the code to ignore the part being moved when determining the mouse's world position.
The code should work as expected when placed in a LocalScript.
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
El evento WheelBackward se activa cuando la rueda del ratón se desplaza hacia atrás.Los usos posibles para este evento incluyen alternar el alcance de una arma en un tirador en primera persona (FPS) o acercar la cámara del jugador.
Esto se puede utilizar junto con el evento de desplazamiento hacia adelante, Mouse.WheelForward .
Para obtener información sobre cómo obtener el objeto Mouse, consulte la página Mouse.
Nota, a los desarrolladores se les recomienda usar UserInputService en lugar del objeto Mouse en el nuevo trabajo.
Muestras de código
The below example assumes that you have already got the player's mouse (and set it as a variable named 'mouse'), whether by use of a Tool, HopperBin or the Player:GetMouse() method. It will print "Wheel went backwards!" when the player scrolls backwards.
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
El evento WheelForward se activa cuando la rueda del ratón se desplaza hacia adelante.Los usos posibles para este evento incluyen alternar el alcance de una arma en un tirador en primera persona (FPS) o acercar la cámara del jugador.
Esto se puede utilizar junto con el evento de desplazamiento hacia atrás, Mouse.WheelBackward .
Para obtener información sobre cómo obtener el objeto Mouse, consulte la página Mouse.
Nota, a los desarrolladores se les recomienda usar UserInputService en lugar del objeto Mouse en el nuevo trabajo.
Muestras de código
The below example assumes that you have already got the player's mouse (and set it as a variable named 'mouse'), whether by use of a Tool, HopperBin or the Player:GetMouse() method. It will print "Wheel went forward!" when the player scrolls forwards.
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)