# 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 %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.overdare.com/korean/development/api-reference/classes/mouse.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
