> 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/guibutton.md).

# GuiButton

GuiButton : `GuiObject`

## Overview

GuiButton은 GuiObject를 기반으로 하는 추상 클래스로, TextButton과 ImageButton 등 클릭 가능한 UI 요소의 공통 기능을 정의합니다.

## Properties

### AutoButtonColor

`boolean`

마우스를 올리거나 버튼을 누를 때 배경색을 자동으로 어둡게 바꿔 입력 상태를 표시할지 지정합니다.

기본값은 true입니다. 버튼의 색상 변화를 스크립트로 직접 연출하려면 false로 설정하는 것을 권장합니다.

#### Code Samples

```lua
local ScreenGui = script.Parent
local TextButton = ScreenGui:WaitForChild("TextButton")

TextButton.AutoButtonColor = false
```

### Modal

`boolean`

마우스 커서를 표시할지 지정합니다.

#### Code Samples

```lua
local ScreenGui = script.Parent
local TextButton = ScreenGui:WaitForChild("TextButton")

TextButton.Modal = true
```

### Selected

`boolean`

버튼의 선택 상태를 지정합니다.

true로 설정하면 버튼이 키보드 포커스를 받고, false로 설정하면 포커스가 해제됩니다.

#### Code Samples

```lua
local ScreenGui = script.Parent
local TextButton = ScreenGui:WaitForChild("TextButton")

TextButton.Selected = true
```

### Style

`Enum.ButtonStyle`

버튼에 적용할 기본 모양을 지정합니다.

기본값인 Custom은 버튼의 배경 속성을 그대로 사용합니다. 그 외의 값은 미리 정의된 모서리 모양을 적용하며, Round로 시작하는 값은 모서리를 둥글게 표시합니다.

#### Code Samples

```lua
local ScreenGui = script.Parent
local TextButton = ScreenGui:WaitForChild("TextButton")

TextButton.Style = Enum.ButtonStyle.RoundButton
```

## Methods

## Events

### Activated

버튼을 누를 때 발생하는 이벤트입니다.

버튼을 클릭하거나 터치한 뒤 해당 UI 요소 위에서 손을 뗄 때 발생하며, 입력이 시작되는 순간이 아닌 입력이 종료되는 시점(Up)에 실행됩니다.

또한, 이 이벤트가 정상적으로 발생하려면 버튼의 Active 속성이 true로 설정되어 있어야 합니다.

#### Parameters

| `InputObject` inputObject | 버튼을 활성화한 입력에 해당하는 InputObject입니다. 입력 정보를 확인할 수 없는 경우 nil이 전달됩니다. |
| ------------------------- | ---------------------------------------------------------------- |
| `number` clickCount       | 클릭 횟수입니다. 현재는 항상 1이 전달됩니다.                                       |

#### Code Samples

```lua
local ScreenGui = script.Parent
local ImageButton = ScreenGui.ImageButton

local function OnActivated()
    print("Activated!")
end
ImageButton.Activated:Connect(OnActivated)
```

### MouseButton1Click

마우스 왼쪽 버튼(또는 터치)으로 버튼을 눌렀다가 버튼 위에서 놓을 때 발생하는 이벤트입니다.

Activated 이벤트 직전에 발생합니다. 여러 입력 장치를 함께 지원하려면 Activated 이벤트를 사용하는 것을 권장합니다.

#### Parameters

#### Code Samples

```lua
local ScreenGui = script.Parent
local TextButton = ScreenGui:WaitForChild("TextButton")

local function OnMouseButton1Click()
    print("MouseButton1Click")
end
TextButton.MouseButton1Click:Connect(OnMouseButton1Click)
```

### MouseButton1Down

마우스 왼쪽 버튼(또는 터치)으로 버튼을 누르는 순간 발생하는 이벤트입니다.

#### Parameters

| `number` x | 입력이 발생한 화면상의 X 좌표(픽셀)입니다. |
| ---------- | ------------------------- |
| `number` y | 입력이 발생한 화면상의 Y 좌표(픽셀)입니다. |

#### Code Samples

```lua
local ScreenGui = script.Parent
local TextButton = ScreenGui:WaitForChild("TextButton")

local function OnMouseButton1Down(x, y)
    print("MouseButton1Down : ", x, y)
end
TextButton.MouseButton1Down:Connect(OnMouseButton1Down)
```

### MouseButton1Up

버튼을 누르고 있던 마우스 왼쪽 버튼(또는 터치)을 놓는 순간 발생하는 이벤트입니다.

#### Parameters

| `number` x | 입력이 발생한 화면상의 X 좌표(픽셀)입니다. |
| ---------- | ------------------------- |
| `number` y | 입력이 발생한 화면상의 Y 좌표(픽셀)입니다. |

#### Code Samples

```lua
local ScreenGui = script.Parent
local TextButton = ScreenGui:WaitForChild("TextButton")

local function OnMouseButton1Up(x, y)
    print("MouseButton1Up : ", x, y)
end
TextButton.MouseButton1Up:Connect(OnMouseButton1Up)
```

### MouseButton2Click

마우스 오른쪽 버튼으로 버튼을 눌렀다가 버튼 위에서 놓을 때 발생하는 이벤트입니다.

#### Parameters

#### Code Samples

```lua
local ScreenGui = script.Parent
local TextButton = ScreenGui:WaitForChild("TextButton")

local function OnMouseButton2Click()
    print("MouseButton2Click")
end
TextButton.MouseButton2Click:Connect(OnMouseButton2Click)
```

### MouseButton2Down

마우스 오른쪽 버튼으로 버튼을 누르는 순간 발생하는 이벤트입니다.

#### Parameters

| `number` x | 입력이 발생한 화면상의 X 좌표(픽셀)입니다. |
| ---------- | ------------------------- |
| `number` y | 입력이 발생한 화면상의 Y 좌표(픽셀)입니다. |

#### Code Samples

```lua
local ScreenGui = script.Parent
local TextButton = ScreenGui:WaitForChild("TextButton")

local function OnMouseButton2Down(x, y)
    print("MouseButton2Down : ", x, y)
end
TextButton.MouseButton2Down:Connect(OnMouseButton2Down)
```

### MouseButton2Up

버튼을 누르고 있던 마우스 오른쪽 버튼을 놓는 순간 발생하는 이벤트입니다.

#### Parameters

| `number` x | 입력이 발생한 화면상의 X 좌표(픽셀)입니다. |
| ---------- | ------------------------- |
| `number` y | 입력이 발생한 화면상의 Y 좌표(픽셀)입니다. |

#### Code Samples

```lua
local ScreenGui = script.Parent
local TextButton = ScreenGui:WaitForChild("TextButton")

local function OnMouseButton2Up(x, y)
    print("MouseButton2Up : ", x, y)
end
TextButton.MouseButton2Up:Connect(OnMouseButton2Up)
```

### SecondaryActivated

버튼에 보조 동작 입력이 완료될 때 발생하는 이벤트입니다.

마우스에서는 오른쪽 버튼으로 버튼을 눌렀다가 놓을 때 MouseButton2Click 이벤트 직후에 발생합니다.

#### Parameters

| `InputObject` inputObject | 이벤트를 발생시킨 입력 정보를 담은 객체입니다. |
| ------------------------- | -------------------------- |

#### Code Samples

```lua
local ScreenGui = script.Parent
local TextButton = ScreenGui:WaitForChild("TextButton")

local function OnSecondaryActivated(inputObject)
    print("SecondaryActivated : ", inputObject.UserInputType)
end
TextButton.SecondaryActivated:Connect(OnSecondaryActivated)
```
