Mouse

사용되지 않는 항목 표시

*이 콘텐츠는 AI(베타)를 사용해 번역되었으며, 오류가 있을 수 있습니다. 이 페이지를 영어로 보려면 여기를 클릭하세요.

만들 수 없음

마우스UserInputServiceContextActionService 에 의해 대체되었습니다. 이는 더 넓은 범위, 더 많은 기능, 크로스 플랫폼 패턴을 지원하는 등 더 나은 지원을 제공합니다. 이 대체 방법을 사용하도록 권장

마우스 개체는 버튼 및 레이캐스팅을 위한 다양한 API를 포함합니다. 이 개체는 Class.Player:GetMouse() 라는 이름의 Class.Players.LocalPlayer 에 액세스할 수 있습니다. 이 개체는 또한 Class.Tool.Equipped 이벤트를 통해 액세스됩

  • Class.Mouse.Icon|Icon 속성, 커서의 모습변경합니다.
  • 이 속성은 레이캐스트 결과를 TargetFilter, HitTarget 속성에 저장하고 결과를
  • PluginsPlugin:GetMouse() 를 사용하여 PluginMouse 를 얻을 수 있으며, 동일한 행동을 합니다.

-- 로컬 스크립트에서:
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local mouse = player:GetMouse()
-- 마우스 아이콘 설정
mouse.Icon = "rbxasset://SystemCursors/Wait"

참고:

  • 이 개체는 포인터 이동을 제어/제한하지 않습니다. 자세한 내용은 UserInputService.MouseBehaviorUserInputService.MouseDeltaSensitivity 를 참조하십시오.

  • 두 함수가 동일한 입력 이벤트에 연결되면, 예를 들어 Button1Down 또는 Class.Button 와 같은, 두 함수 모두 이벤트가 발생할 때 실행됩니다. 이 경우 컨셉트는 침범하지 않

  • 모든 플랫폼에서 마우스가 사용할 수 없지만, 마우스는 여전히 모바일(터치) 및 콘솔(게임패드)에서 작동하므로 마우스가 없거나 포인터 하드웨어가 없는 경우에도 적용됩니다. 명시적인 크로스 플랫폼 동작은 UserInputServiceContextActionService

    경험에서 입력을 사용자 정의하는 방법에 대한 자세한 내용은 입력 및 카메라를 참조하십시오.

요약

속성

  • 읽기 전용
    복제되지 않음
    병렬 읽기

    마우스의 위치에 대한 3D 공간의 CFrame입니다.

  • Icon:ContentId
    병렬 읽기

    Class.Mouse 아이콘의 이미지 아이디.

  • 읽기 전용
    복제되지 않음
    병렬 읽기

    Class.Workspace.CurrentCamera 와 마우스의 3D 위치를 향해 지향적으로 배치된 Workspace.CurrentCamera 입니다.

  • 읽기 전용
    복제되지 않음
    병렬 읽기

    3D 공간의 개체는 mouse 를 가리키고 있습니다.

  • 병렬 읽기

    Class.Mouse.Hit 및 Mouse.Target을 결정할 때 무시할 개체(및 그 후손)를 결정합니다.

  • 읽기 전용
    복제되지 않음
    병렬 읽기

    마우스가 가리키고 있는 BasePart 표면의 Enum.NormalId 를 나타냅니다.

  • 읽기 전용
    복제되지 않음
    병렬 읽기

    Class.Workspace.CurrentCamera 세계 위치에서 시작하는 Workspace.CurrentCamera 가 마우스의 세계 위치를 향해 직접 향상됩니다.

  • 읽기 전용
    복제되지 않음
    병렬 읽기

    게임 창의 너비를 픽셀로 설명합니다.

  • 읽기 전용
    복제되지 않음
    병렬 읽기

    게임 창의 높이를 픽셀로 설명합니다.

  • 읽기 전용
    복제되지 않음
    병렬 읽기

    화면에 마우스 위치의 X (가로) 구성 요소를 설명합니다.

  • 읽기 전용
    복제되지 않음
    병렬 읽기

    마우스의 화면 위치의 Y(垂直) 구성 요소를 설명합니다.

이벤트

속성

읽기 전용
복제되지 않음
병렬 읽기

이 속성은 3D 공간에서 마우스의 위치에 대한 CFrame 를 나타냅니다. 참고로 Mouse.TargetFilter 및 그 후손은 무시됩니다.

개발자는 다음과 같이 히트의 위치를 얻을 수 있습니다.


local position = mouse.Hit.Position

히트는 종종 Tools 를 사용하여 마우스를 향해 무기를 발사합니다.

Class.BasePart 마우스가 가리키고 있는 개발자는 Mouse.Target 를 사용해야 합니다.

Mouse.Hit 계산

Hit CFrame의 위치는 마우스의 내부 Ray (확장형 Mouse.UnitRay )와 3D 공간의 개체(예: 부품) 간의 교차 지점으로 계산됩니다.

Hit CFrame의 방향은 Mouse.UnitRay의 방향과 일치합니다.


local unitRayDirection = mouse.UnitRay.Direction
local mouseHitDirection = mouse.Hit.lookVector
-- unitRayDirection ≈ mouseHitDirection
-- the vectors are approximately equal

참고, Workspace.CurrentCamera의 롤은 히트 CFrame 의 방향을 계산할 때 사용되지 않습니다.

내부 광선은 1,000 스터드 확장됩니다. 마우스가 3D 공간에 있는 개체를 가리키지 않으면(예를 들어 하늘을 가리키는 경우)이 속성은 Workspace.CurrentCamera 에서 1,000 스터드 멀리 있습니다.

코드 샘플

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.

Mouse.Hit Laser Beam

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.

Mouse Origin vs Mouse Hit vs CurrentCamera Position

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

ContentId
병렬 읽기

아이콘 은 포인터로 사용할 이미지를 결정하는 속성입니다. 비워면 기본 화살표가 사용됩니다. 커서가 GuiButton에 대해 호버할 때 이 속성이 임시적으로 무시됩니다.

커서를 완전히 숨기려면 투명한 이미지를 사용하지 마십시오 – 대신, Class.UserInputService.MouseIconEnabled를 가짜로 설정합니다.

사용자 마우스 아이콘을 체험에서 얻거나 설정하려면 UserInputService.MouseIcon 를 사용하십시오. Mouse.Icon 은 플러그인 새로운 API를 통해 마우스 커서를 설정하는 데 대해 지원되지 않습니다.

커서 디자인

다음 가이드라인은 자신의 마우스 커서를 만드는 데 도움이 될 수 있습니다.

  • 사용된 이미지의 크기는 커서의 크기를 결정합니다.
  • 이미지의 중심 은 마우스 입력이 발생하는 곳입니다.
  • 기본 마우스 이미지는 64x64 픽셀로, 마우스가 17x24 픽셀의 공간을 차지합니다.

System Cursors for PluginMouse

Class.PluginMouse 를 사용하면 시스템의 기본 커서와 유사한 아


<tbody>
<tr>
<td>
<img src="../../../assets/legacy/Mouse-Icon-Pointer.png">
</img>
</td>
<td><code>rbxasset://SystemCursors/Arrow</code></td>
<td>기본적으로 클릭 및 선택.</td>
</tr>
<tr>
<td>
<img src="../../../assets/legacy/Mouse-Icon-PointingHand.png">
</img>
</td>
<td><code>rbxasset://SystemCursors/PointingHand</code></td>
<td>활성 링크/버튼을 마우스로 이동합니다.</td>
</tr>
<tr>
<td>
<img src="../../../assets/legacy/Mouse-Icon-OpenHand.png">
</img>
</td>
<td><code>rbxasset://SystemCursors/OpenHand</code></td>
<td>드래그할 수 있는 아이템위로 마우스를 이동합니다.</td>
</tr>
<tr>
<td>
<img src="../../../assets/legacy/Mouse-Icon-GrabbingHand.png">
</img>
</td>
<td><code>rbxasset://SystemCursors/ClosedHand</code></td>
<td>아이템드래그합니다.</td>
</tr>
<tr>
<td>
<img src="../../../assets/legacy/Mouse-Icon-IBeam.png">
</img>
</td>
<td><code>rbxasset://SystemCursors/IBeam</code></td>
<td>텍스트 필드에 마우스를 올리는 것.</td>
</tr>
<tr>
<td>
<img src="../../../assets/legacy/Mouse-Icon-ResizeNS.png">
</img>
</td>
<td><code>rbxasset://SystemCursors/SizeNS</code></td>
<td>세로 크기 조정 핸들 위로 마우스를 이동합니다.</td>
</tr>
<tr>
<td>
<img src="../../../assets/legacy/Mouse-Icon-ResizeEW.png">
</img>
</td>
<td><code>rbxasset://SystemCursors/SizeEW</code></td>
<td>가로 크기 조정 핸들 위로 마우스를 이동합니다.</td>
</tr>
<tr>
<td>
<img src="../../../assets/legacy/Mouse-Icon-ResizeNESW.png">
</img>
</td>
<td><code>rbxasset://SystemCursors/SizeNESW</code></td>
<td>모서리 크기 조정 핸들 위로 마우스를 이동합니다.</td>
</tr>
<tr>
<td>
<img src="../../../assets/legacy/Mouse-Icon-ResizeNWSE.png">
</img>
</td>
<td><code>rbxasset://SystemCursors/SizeNWSE</code></td>
<td>모서리 크기 조정 핸들 위로 마우스를 이동합니다.</td>
</tr>
<tr>
<td>
<img src="../../../assets/legacy/Mouse-Icon-ResizeAll.png">
</img>
</td>
<td><code>rbxasset://SystemCursors/SizeAll</code></td>
<td>다중 방향 크기 조정 핸들을 마우스로 놓칩니다.</td>
</tr>
<tr>
<td>
<img src="../../../assets/legacy/Mouse-Icon-ResizeSplitV.png">
</img>
</td>
<td><code>rbxasset://SystemCursors/SplitNS</code></td>
<td>세로 스플릿 핸들 위로 마우스를 이동합니다.</td>
</tr>
<tr>
<td>
<img src="../../../assets/legacy/Mouse-Icon-ResizeSplitH.png">
</img>
</td>
<td><code>rbxasset://SystemCursors/SplitEW</code></td>
<td>가로 스플릿 핸들 위로 마우스를 이동합니다.</td>
</tr>
<tr>
<td>
<img src="../../../assets/legacy/Mouse-Icon-Forbidden.png">
</img>
</td>
<td><code>rbxasset://SystemCursors/Forbidden</code></td>
<td>잠긴/금지된 아이템위로 마우스를 이동합니다.</td>
</tr>
<tr>
<td>
<img src="../../../assets/legacy/Mouse-Icon-Wait.png">
</img>
</td>
<td><code>rbxasset://SystemCursors/Wait</code></td>
<td>동작이 진행 중임을 나타냅니다.</td>
</tr>
<tr>
<td>
<img src="../../../assets/legacy/Mouse-Icon-Busy.png">
</img>
</td>
<td><code>rbxasset://SystemCursors/Busy</code></td>
<td>시스템이 바쁜지 여부를 나타냅니다.</td>
</tr>
<tr>
<td>
<img src="../../../assets/legacy/Mouse-Icon-Crosshair.png">
</img>
</td>
<td><code>rbxasset://SystemCursors/Cross</code></td>
<td>핀 선택 영역에 마우스를 이동합니다.</td>
</tr>
</tbody>
보기\*자산권장 사용

이 모양은 가장자리이며 실제 모양은 운영 체제에 따라 다릅니다.

코드 샘플

This example changes the Players.LocalPlayer mouse icon to look like a dragon image.

Dragon Mouse Icon

local Players = game:GetService("Players")
local mouse = Players.LocalPlayer:GetMouse()
mouse.Icon = "http://www.roblox.com/asset?id=163023520"

Origin

읽기 전용
복제되지 않음
병렬 읽기

원시 Mouse 속성은 마우스 원시 위치를 나타내는 CFrame 입니다. 이는 마우스의 3D 위치를 향해 정렬되어 있습니다. 이 속성은 Workspace.CurrentCamera 에 배치되어 있습니다.

Mouse.UnitRay 는 원래 위치와 동일한 위치에서 시작하고 같은 방향으로 연장됩니다.


local unitRay = mouse.UnitRay
local origin = mouse.Origin
-- 단위Ray.Direction = origin.p
-- unitRay.Direction ≈ origin.lookVector

3D 공간에서 Mouse의 위치를 보려면 Mouse.Hit를 참조하십시오.

코드 샘플

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.

Mouse Origin vs Mouse Hit vs CurrentCamera Position

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

읽기 전용
복제되지 않음
병렬 읽기

3D 공간의 개체는 mouse 를 가리키고 있습니다.

참고:

  • Class.Mouse.TargetFilter가 설정된 경우 대상 필터 및 그 하위 요소가 무시됩니다.
  • 마우스가 하늘을 가리키지 않으면 BasePart 를 가리키지 않을 때 대상은 일반적으로 0이 됩니다.
  • 3D 공간의 마우스 위치를 찾는 개발자는 Mouse.Hit 를 사용해야 합니다.

코드 샘플

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.

Color Randomizer Tool

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

병렬 읽기

이 속성은 마우스가 Mouse.HitMouse.Target 을 계산할 때 무시할 개체를 결정합니다. 개체의 후손도 무시되므로 개체가 속성이 설정개체의 후손이

이 속성은 Instance 또는 nil로 설정할 수 있습니다. 예를 들어:


local Players = game:GetService("Players")
local player = Players.LocalPlayer
local mouse = player:GetMouse()
mouse.TargetFilter = workspace.Model

Class.Player.Character|Character 의 Players.LocalPlayer 이 마우스에 자동으로 무시됩니다.

TargetSurface

읽기 전용
복제되지 않음
병렬 읽기

이 속성은 마우스가 가리키고 있는 Enum.NormalId 표면의 BasePart 를 나타냅니다. 이 속성은 마우스 위치( Class.Mouse.Hit )와 마우스가 향할 부분( 2> Class.Mouse.Target) 에서 파생됩니다.

이 속성은 마우스가 부품을 가리키지 않을 때 의미가 없습니다. 예를 들어, 마우스가 하늘을 가리키는 경우. 이 속성은 현재 이 조건에 따라 '오른쪽'으로 설정됩니다. 이 속성을 사용하기 전에 마우스의 대상이 부분이 아닌지 확인하십시오.


local Players = game:GetService("Players")
local player = Players.LocalPlayer
local mouse = player:GetMouse()
-- 마우스가 가리키는 부분이 있는지 확인하십시오
if mouse.Target then
print("The mouse is pointing to the " .. mouse.TargetSurface.Name .. " side of " .. mouse.Target.Name)
else
print("The mouse is not pointing at anything.")
end

코드 샘플

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.

Surface Randomizer

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

읽기 전용
복제되지 않음
병렬 읽기

UnitRay 속성은 3D 공간의 마우스 위치를 향한 Ray 입니다 (Mouse.Hit 에 설명됨). 그것은 Class.Workspace.CurrentCamera 의 Class.Camera.CFrame|CFrame 에서 원래됩니다. 모든 단위 빔과 마찬가지로, 그것은 1을


local Players = game:GetService("Players")
local player = Players.LocalPlayer
local mouse = player:GetMouse()
print(mouse.UnitRay.Direction.magnitude) -- Always 1

ViewSizeX

읽기 전용
복제되지 않음
병렬 읽기

ViewSizeX 속성은 게임 창의 크기를 픽셀 단위로 설명합니다.

코드 샘플

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.

Normalized Mouse Position

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

읽기 전용
복제되지 않음
병렬 읽기

ViewSizeY 속성은 게임 창의 크기를 픽셀 단위로 설명합니다. 이 길이에는 상단 표시줄의 공간이 포함됩니다.

코드 샘플

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.

Normalized Mouse Position

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)
읽기 전용
복제되지 않음
병렬 읽기

화면에서 마우스 위치를 변경할 때 마우스 이동 위치나 ContextActionService:BindAction() 또는 Enum.UserInputType.MouseMovement 를 사용하는 것이 좋습니다.

X 속성은 화면에서 마우스 위치의 가로 구성 요소를 설명합니다. 위치는 상단 왼쪽 모서리에 대한 피셀 기준으로 측정됩니다. 이 속성은 Mouse.Y와 함께 사용하여 마우스 위치를 나타내는 Vector2를 생성합니다.


local position = Vector2.new(mouse.X, mouse.Y)

이 속성은 Changed 또는 GetPropertyChangedSignal 에서 반환되는 신호를 발생시키지 않습니다. Mouse.Move 이벤트를 대신 사용하십시오.

코드 샘플

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.

Normalized Mouse Position

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)
읽기 전용
복제되지 않음
병렬 읽기

화면에서 마우스 위치를 변경할 때 마우스 이동 위치나 ContextActionService:BindAction() 또는 Enum.UserInputType.MouseMovement 를 사용하는 것이 좋습니다.

Y 속성은 화면에서 마우스 위치의 가로 구성 요소를 설명합니다. 위치는 상단 왼쪽 모서리에 대한 피셀 수치로 측정됩니다. 이 속성은 Mouse.X와 함께 사용하여 마우스 위치를 나타내는 Vector2를 생성합니다.


local position = Vector2.new(mouse.X, mouse.Y)

이 속성은 Changed 또는 GetPropertyChangedSignal 에서 반환되는 신호를 발생시키지 않습니다. Mouse.Move 이벤트를 대신 사용하십시오.

코드 샘플

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.

Normalized Mouse Position

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)

메서드

이벤트

Button1Down

버튼1Down 심지어 플레이어가 왼쪽 마우스 버튼을 누르면 발생합니다.

이 기능은 Tool 에서도 액세스할 수 있습니다. 예를 들어, 왼쪽 마우스 버튼을 누르면 코드 아래에 있는 Button1Down을 항상 인쇄하게 하려면 LocalScript 에 배치됩니다.


local Tool = script.Parent --이 개체가 도구 개체인지 확인하십시오
Tool.Equipped:Connect(function(Mouse)
Mouse.Button1Down:Connect(function()
print("Button1Down")
end)
end)

개발자는 세계 공간에서 마우스의 위치를 확인할 수 있으며, BasePartMouse.Hit 속성을 사용하여 마우스가 어느 위치에 있는지 확인할 수 있습니다.

마우스 개체를 얻는 방법에 대한 자세한 내용은 Mouse 페이지를 참조하십시오.

참고, 개발자는 새 작업에서 UserInputService 대신에 Mouse 개체를 사용하는 것이 좋습니다.


코드 샘플

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.

Color Randomizer Tool

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

왼쪽 마우스 버튼이 릴리스되면 화재됩니다.

Class.Mouse 개체를 얻는 방법에 대한 자세한 내용은 Mouse 페이지를 참조하십시오.

개발자는 세계 공간의 마우스 위치를 알 수 있으며, BasePartMouse.Hit 속성을 사용하여 마우스가 특정 Mouse.Target에 가리키고 있는지 여부를 확인할 수 있습니다.

참고, 개발자는 새 작업에서 UserInputService 대신에 Mouse 개체를 사용하는 것이 좋습니다.


코드 샘플

The follow example changes the BasePart.BrickColor of every BasePart the player clicks and releases their mouse on.

In order for a part to change color, the player's mouse must be over the part both when the player presses their left mouse button down and when the player releases their left mouse button.

Color Randomizer Tool (Button1Up)

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

버튼2다운은 플레이어가 오른쪽 마우스 버튼을 누르면 실행됩니다.

이 기능은 Tool 에서도 액세스할 수 있습니다. 예를 들어, 마우스 오른쪽 버튼이 누르여 배치된 경우 아래의 코드가 버튼2Down을 인쇄합니다:


local Tool = script.Parent --이 개체가 도구 개체인지 확인하십시오
Tool.Equipped:Connect(function(Mouse)
Mouse.Button2Down:Connect(function()
print("Button2Down")
end)
end).

개발자는 세계 공간에서 마우스의 위치를 확인할 수 있으며, BasePartMouse.Hit 속성을 사용하여 마우스가 어느 위치에 있는지 확인할 수 있습니다.

마우스 개체를 얻는 방법에 대한 자세한 내용은 Mouse 페이지를 참조하십시오.

참고, 개발자는 새 작업에서 UserInputService 대신에 Mouse 개체를 사용하는 것이 좋습니다.


코드 샘플

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.

Color Randomizer Tool

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

오른쪽 마우스 버튼이 릴리스되면 발사됩니다.


mouse.Button2Up:Connect(function()
print("button 2 up!")
end

Class.Mouse 개체를 얻는 방법에 대한 자세한 내용은 Mouse 페이지를 참조하십시오.

개발자는 세계 공간의 마우스 위치를 알 수 있으며, BasePartMouse.Hit 속성을 사용하여 마우스가 특정 Mouse.Target에 가리키고 있는지 여부를 확인할 수 있습니다.

참고, 개발자는 새 작업에서 UserInputService 대신에 Mouse 개체를 사용하는 것이 좋습니다.


코드 샘플

The follow example changes the BasePart.BrickColor of every BasePart the player clicks and releases their right mouse button on.

In order for a part to change color, the player's mouse must be over the part both when the player presses their right mouse button down and when the player releases their right mouse button.

Color Randomizer Tool (Button2Up)

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

마우스가 다른 마우스 이벤트로 전송되지 않는 동안 마다 심장 소리가 들립니다.

참고, 이 이벤트는 마우스가 여전히 있는지 여부를 결정하는 데 사용되지 않아야 합니다. 마우스가 모든 심박을 발생시키면 심박 사이의 Mouse.Move 이벤트에 발생합니다.

Class.Mouse 개체를 얻는 방법에 대한 자세한 내용은 Mouse 페이지를 참조하십시오.

개발자는 세계 공간의 마우스 위치를 알 수 있으며, BasePartMouse.Hit 속성을 사용하여 마우스가 특정 Mouse.Target에 가리키고 있는지 여부를 확인할 수 있습니다.

참고, 개발자는 새 작업에서 UserInputService 대신에 Mouse 개체를 사용하는 것이 좋습니다.


코드 샘플

This example demonstrates how mouse events are passed during each frame

Mouse.Idle

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

마우스가 이동할 때 발생합니다.

참고, 이 이벤트는 마우스 위치가 업데이트되면 발생하므로 이동 중에 반복해서 발생합니다.

Class.Mouse 개체를 얻는 방법에 대한 자세한 내용은 Mouse 페이지를 참조하십시오.

개발자는 세계 공간의 마우스 위치를 알 수 있으며, BasePartMouse.Hit 속성을 사용하여 마우스가 특정 Mouse.Target에 가리키고 있는지 여부를 확인할 수 있습니다.


mouse.Move:Connect(function()
local position = mouse.Hit.p
local target = mouse.Target
print(target, position)
end)

참고, 개발자는 새 작업에서 UserInputService 대신에 Mouse 개체를 사용하는 것이 좋습니다.


코드 샘플

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.

Move Parts with the Mouse

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

마우스 휠이 뒤로 스크롤되면 WheelBackward 이벤트가 발생합니다. 이 이벤트의 가능한 사용 사례는 첫 번째 사람 슈팅 게임 (FPS)에서 사격의 조준을 전환하거나 플레이어의 카메라를 확대하는 것입니다.

이 기능은 스크롤 전진 이벤트와 함께 사용할 수 있습니다, Mouse.WheelForward .

Class.Mouse 개체를 얻는 방법에 대한 자세한 내용은 Mouse 페이지를 참조하십시오.

참고, 개발자는 새 작업에서 UserInputService 대신에 Mouse 개체를 사용하는 것이 좋습니다.


코드 샘플

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.

Mouse.WheelBackward

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

마우스 휠이 앞으로 스크롤될 때 휠포워드 이벤트가 발생합니다. 이 이벤트는 첫 번째 사람 슈팅 게임(FPS)에서 플레이어의 조준경을 전환하거나 플레이어의 카메라를 확대하는 등의 용途로 사용될 수 있습니다.

이 기능은 스크롤 백 이벤트와 함께 사용할 수 있습니다, Mouse.WheelBackward .

Class.Mouse 개체를 얻는 방법에 대한 자세한 내용은 Mouse 페이지를 참조하십시오.

참고, 개발자는 새 작업에서 UserInputService 대신에 Mouse 개체를 사용하는 것이 좋습니다.


코드 샘플

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.

Mouse.WheelForward

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)