> For the complete documentation index, see [llms.txt](https://docs.overdare.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.overdare.com/korean/development/api-reference/classes/mouse.md).

# Mouse

Mouse : `Instance`

## Overview

Mouse는 마우스 버튼 클릭 감지와 관련된 기능을 제공합니다.

그러나 모바일 환경에서 안정적인 입력 처리를 위해, Mouse 대신 UserInputService와 ContextActionService의 사용을 권장합니다.

## Properties

### Hit

`CFrame`

마우스 포인터가 가리키는 3D 공간상의 CFrame 값을 반환합니다.

#### Code Samples

```lua
local RunService = game:GetService("RunService")
local Players = game:GetService("Players")
local Player = Players.LocalPlayer
local Mouse = Player:GetMouse()

local function UpdateEvent(deltaTime)
    print("Hit Position : ", Mouse.Hit.Position)
end
RunService.Heartbeat:Connect(UpdateEvent)
```

### Origin

`CFrame`

마우스 포인터가 화면에서 어떤 방향으로 입력되었는지를 3D 공간 기준으로 표현한 CFrame입니다.

현재 카메라 위치를 출발점으로 삼고, 마우스 포인터가 향하는 공간 좌표 방향으로 회전한 형태로 설정됩니다.

#### Code Samples

```lua
local Players = game:GetService("Players")
local Player = Players.LocalPlayer
local Mouse = Player:GetMouse()

local function OnButton1Down()
    print("Button1Down", Mouse.Origin)
end
Mouse.Button1Down:Connect(OnButton1Down)
```

### Target

`BasePart`

이 속성은 마우스 포인터가 현재 가리키고 있는 3D 객체를 반환합니다.

BasePart가 아닌 영역(예: 하늘)을 가리킬 경우 Target 값은 nil이 반환됩니다.

#### Code Samples

### ViewSizeX

`number`

화면의 가로 해상도를 픽셀 단위로 반환합니다.

#### Code Samples

```lua
local RunService = game:GetService("RunService")
local Players = game:GetService("Players")
local Player = Players.LocalPlayer
local Mouse = Player:GetMouse()

print("ViewSize : ", Mouse.ViewSizeX, " / ", Mouse.ViewSizeY)
```

### ViewSizeY

`number`

화면의 세로 해상도를 픽셀 단위로 반환합니다.

#### Code Samples

```lua
local RunService = game:GetService("RunService")
local Players = game:GetService("Players")
local Player = Players.LocalPlayer
local Mouse = Player:GetMouse()

print("ViewSize : ", Mouse.ViewSizeX, " / ", Mouse.ViewSizeY)
```

### X

`number`

마우스 클릭이 발생할 때, 화면 내 가로 좌표를 픽셀 단위로 반환합니다.

#### Code Samples

```lua
local RunService = game:GetService("RunService")
local Players = game:GetService("Players")
local Player = Players.LocalPlayer
local Mouse = Player:GetMouse()

local function UpdateEvent(deltaTime)
    print("Mouse Position : ", Mouse.X, " / ", Mouse.Y)
end
RunService.Heartbeat:Connect(UpdateEvent)
```

### Y

`number`

마우스 클릭이 발생할 때, 화면 내 세로 좌표를 픽셀 단위로 반환합니다.

#### Code Samples

```lua
local RunService = game:GetService("RunService")
local Players = game:GetService("Players")
local Player = Players.LocalPlayer
local Mouse = Player:GetMouse()

local function UpdateEvent(deltaTime)
    print("Mouse Position : ", Mouse.X, " / ", Mouse.Y)
end
RunService.Heartbeat:Connect(UpdateEvent)
```

## Methods

## Events

### Button1Down

플레이어가 마우스의 왼쪽 버튼을 누르는 순간 실행되는 이벤트입니다.

#### Parameters

#### Code Samples

```lua
local Players = game:GetService("Players")
local Player = Players.LocalPlayer
local Mouse = Player:GetMouse()

local function OnButton1Down()
    print("Button1Down", Mouse.Target)
end
Mouse.Button1Down:Connect(OnButton1Down)
```

### Button1Up

플레이어가 마우스의 왼쪽 버튼에서 손을 뗄 때 실행되는 이벤트입니다.

#### Parameters

#### Code Samples

```lua
local Players = game:GetService("Players")
local Player = Players.LocalPlayer
local Mouse = Player:GetMouse()

local function OnButton1Up()
    print("Button1Up")
end
Mouse.Button1Up:Connect(OnButton1Up)
```

### Button2Down

플레이어가 마우스의 오른쪽 버튼을 누르는 순간 실행되는 이벤트입니다.

#### Parameters

#### Code Samples

```lua
local Players = game:GetService("Players")
local Player = Players.LocalPlayer
local Mouse = Player:GetMouse()

local function OnButton2Down()
    print("Button2Down", Mouse.Target)
end
Mouse.Button2Down:Connect(OnButton2Down)
```

### Button2Up

플레이어가 마우스의 오른쪽 버튼에서 손을 뗄 때 실행되는 이벤트입니다.

#### Parameters

#### Code Samples

```lua
local Players = game:GetService("Players")
local Player = Players.LocalPlayer
local Mouse = Player:GetMouse()

local function OnButton2Up()
    print("Button2Up")
end
Mouse.Button2Up:Connect(OnButton2Up)
```

### TouchEnded

(deprecated) 플레이어가 화면에서 손을 뗄 때 실행되는 이벤트입니다.

UserInputService의 TouchEnded 이벤트를 사용하는 것을 권장합니다.

#### Parameters

| `number` x | 터치가 발생한 화면 내 가로 좌표(픽셀)입니다.                    |
| ---------- | --------------------------------------------- |
| `number` y | 터치가 발생한 화면 내 세로 좌표(픽셀)입니다.                    |
| `number` z | 터치 위치 벡터의 Z 성분입니다. 일반적인 화면 터치 입력에서는 0이 전달됩니다. |

#### Code Samples

```lua
local Players = game:GetService("Players")
local Player = Players.LocalPlayer
local Mouse = Player:GetMouse()

local function OnTouchEnded()
    print("TouchEnded")
end
Mouse.TouchEnded:Connect(OnTouchEnded)
```

### TouchStarted

(deprecated) 플레이어가 화면을 누르는 순간 실행되는 이벤트입니다.

UserInputService의 TouchStarted 이벤트를 사용하는 것을 권장합니다.

#### Parameters

| `number` x | 터치가 발생한 화면 내 가로 좌표(픽셀)입니다.                    |
| ---------- | --------------------------------------------- |
| `number` y | 터치가 발생한 화면 내 세로 좌표(픽셀)입니다.                    |
| `number` z | 터치 위치 벡터의 Z 성분입니다. 일반적인 화면 터치 입력에서는 0이 전달됩니다. |

#### Code Samples

```lua
local Players = game:GetService("Players")
local Player = Players.LocalPlayer
local Mouse = Player:GetMouse()

local function OnTouchStarted()
    print("TouchStarted")
end
Mouse.TouchStarted:Connect(OnTouchStarted)
```

## See also

{% content-ref url="/pages/KiXAGwJU8cox0tGXdepn" %}
[모바일 조작 처리](/korean/manual/script-manual/input-and-controls/contextactionservice.md)
{% endcontent-ref %}
