Unity/Tutorial

[Unity] 상호작용 UI (Button, Toggle, Slider 등)

SMNNMN 2026. 3. 3. 23:57

상호작용 UI에 대해 알아 볼 것이다. 

상호작용 UI는 상호적이며, 입력을 받는 컨트롤UI 요소로써,

Toggle, Slider, ScrollBar, ScrollView, Button, DropDown, InputField가 존재한다.

(상호작용 UI라는 명칭은 정식 명칭은 아니다.)

 

차례

Toggle ( + Component)

Slider ( + Component)

Scrollbar ( + Component)

Scroll View

  • Scroll Rect (Component)

Mask (Component)

Button ( + Component)

Dropdown ( + Component)

Input Field ( + Component)

 

 

https://docs.unity3d.com/kr/2021.3/Manual/UIInteractionComponents.html

상호작용 UI 위치

 

 

 Toggle 

https://docs.unity3d.com/kr/2021.3/Manual/script-Toggle.html

플레이어의 입력을 통해 On/Off의 상태를 가지는 UI이다.

Toggle 은 기본적으로 배경(Background) + 체크박스(Checkmark) + 텍스트(Label)로 이루어져있다.

 

Toggle (Component)

Interactable : 체크 가능 여부

Transition : 전환 효과 방식

https://docs.unity3d.com/kr/2021.3/Manual/script-SelectableTransition.html

  • None : 전환 효과 없음없음
  • Color Tint : 상태에 따라 컬러를 변화시킵니다.
    • Target Graphic : 상호작용 컴포넌트에 사용되는 그래픽
    • Normal Color : 기본 상태의 컬러
    • Highlighted Color : 마우스를 올렸을 때 컬러
    • Pressed Color : 클릭 중일 때 컬러
    • Selected Color : 선택 상태일 때 컬러
    • Disabled Color : Interactable이 꺼졌을 때 컬러
    • Color Multiplier : 상태 색상에 추가 배율을 곱해주는 값
    • Fade Duration : 상태가 바뀔 때까지 색이 변하는 시간
  • Sprite Swap : 상태별로 이미지를 교체한다.
    • Target Graphic : 사용할 일반 스프라이트
    • Highlighted Sprite : 마우스를 올렸을 때 사용할 스프라이트
    • Pressed Sprite : 클릭 중일 때 사용할 스프라이트
    • Selected Sprite : 선택 상태일 때 사용할 스프라이트
    • Disabled Sprite : Interactable이 꺼졌을 때 사용할 스프라이트
  • Animation : Animator를 연결해 상태별 애니메이션 실행 (상태에 따라 Animator Trigger가 자동으로 호출된다.)
    • Normal Trigger : 기본 상태의 트리거
    • Highlighted Trigger : 마우스를 올렸을 때 사용할 트리거
    • Pressed Trigger : 클릭 중일 때 사용할 트리거
    • Selected Trigger : 선택 상태일 때 사용할 트리거
    • Disabled Trigger : Interactable이 꺼졌을 때 사용할 트리거

Navigation : 다른 UI와의 선택 이동순서 결정 (키보드, 패드 조작시)

Visualize : 선택 가능한 UI요소 사이의 Navigation흐름을 표시한다.

 

Is On : 토글의 초기 상태를 켜짐으로 할 지 여부

Toggle Transition : 값이 변경될 때, 체크마크가 어떻게 반응할지 결정

Graphic : 체크 표시에 사용되는 이미지

Group : 이 Toggle이 속한 Toggle Group 

 

On Value Changed (Boolean) : 토글이 클릭된 경우 호출되는 Unity 이벤트

 

 

Slider

https://docs.unity3d.com/kr/2021.3/Manual/script-Slider.html

플레이어가 마우스를 드래그하여, 미리 정해진 범위상의 숫자 값을 선택할 수 있다. 

Slider는 기본적으로, 배경(Background) + 채워진 영역(Fill) + Handle (드래그 가능한 손잡이)로 구성된다. 

Fill Area : Fill이 채워질 수 있는 영역 , Handle Slide Area : Handle이 움직일수 있는 영역

 

Slider (Component)

Fill Rect : 현재 값만큼 채워질 UI 영역 그래픽

Handle Rect : 드래그할 손잡이 그래픽

Direction : 핸들을 드래그 할때, 슬라이더의 값이 증가하는 방향

Min Value : 핸들이 제일 밑에 있을 때의 값 (최솟값)

Max Value : 핸들이 제일 위에 있을 때의 값 (최댓값)

Whole Numbers : 슬라이더 값을 정수로 제한

Value : 현재 슬라이더의 숫자 값

On Value Changed : 슬라이더의 현재 값이 변경되는 경우 호출되는 Unity 이벤트

 

Scrollbar

https://docs.unity3d.com/kr/2021.3/Manual/script-Scrollbar.html

플레이어가 한 번에 볼 수 없는 이미지나, 다른 보기 화면을 스크롤하여 보도록 할수 있게한다. 

기본적으로 Sliding Area(Handle이 움직일수 있는 영역) + Handle(현재 스크롤 위치를 나타내는 손잡이)로 구성된다.

 

Scrollbar (Component)

Handle Rect : Handle에 사용될 그래픽

Direction : Handle을 드래그 할떄, 스크롤바의 값이 증가하는 방향

Value : 현재 스크롤 위치 (0~1)

Size : Handle의 크기 (전체 콘텐트 대비 화면에 보이는 비율)

Number Of Steps : 스크롤바가 허용하는 Handle의 스크롤 위치 수

On Value Changed : 스크롤 위치가 바뀔 때 호출

 

Scroll View

화면보다 큰 콘텐츠를 스크롤해서 보여주는 UI 컨테이너

기본적으로, Viewport (화면에 실제로 보이는 영역) + Content (스크롤 되는 콘텐츠, 움직이는 오브젝트) + ScrollBar Horizontal (가로축 스크롤, 선택) + ScrollBar Vertical (세로축 스크롤, 선택) 으로 구성된다. 

 

Scroll Rect (Component)

https://docs.unity3d.com/kr/2021.3/Manual/script-ScrollRect.html

크기가 큰 콘텐츠를 작은 영역에 표시해야 할때 사용한다.

Content : 스크롤될 대상 

Horizontal : 수평 스크롤링을 활성화한다.

Vertical : 수직 스크롤링을 활성화한다.

Movement Type : 스크롤이 끝에 도달했을 때 동작 방식

  • Unrestricted : 제한 없음 (끝 넘어가도 계속 이동)
  • Elastic : 끝에서 늘어났다가 튕겨 돌아옴
    • Elasticity : 튕기는 탄성 정도
  • Clamped : 끝에서 딱 멈춤

Inertia : 관성 적용 (드래그 후 손떼고 나서의 관성)

Deceleration Rate : 관성 감속 속도 

Scroll Sensitivity : 마우스 휠 민감도

Viewport : 마스크 역할을 하는 영역 (보이는 영역)

Horizontal (Vertical) Scrollbar : 수평(수직) 스크롤바 참조 요소

  • Visibility : 스크롤바를 사용하지 않는 경우 숨긴다.

  1. Permanent : 항상 표시
  2. Auto Hide : 콘텐츠가 Viewport보다 클 때만 보임 (전부 보이면 자동으로 사라짐)
  3. Auto Hide And Expand View : 스크롤바가 숨겨졌을때, 스크롤바 만큼 보이는 Viewport가 확장된다.
  • Spacing : Scrollbar와 Viewport의 간격

Mask (Component)

https://docs.unity3d.com/kr/2021.3/Manual/script-Mask.html

부모 영역기준으로 자식 UI를 잘라내는 기능이다.

Show Mask Graphic : 마스킹 (부모 오브젝트 그래픽)이 화면에 보이는지

 

 

Button

https://docs.unity3d.com/kr/2019.4/Manual/script-Button.html

플레이어의 클릭 했을 때, 특정 동작을 실행하는 UI이다.

기본적으로 Button 오브젝트 + Text 오브젝트로 구성된다.

 

 

Button (Component)

On Click : 버튼이 클릭되었을 때 호출되는 UnityEvent

버튼을 누르고, 버튼안에서 마우스를 떼야 실행된다. (버튼을 벗어나서 떼면 실행 안됨)

 

 

Dropdown

https://docs.unity3d.com/kr/2023.2/Manual/script-Dropdown.html

여러 선택지 중 하나를 선택할 수 있는 UI 컨트롤이다.

클릭 시 목록이 펼쳐지고, 항목을 선택하면 그 값이 바뀌는 구조다.

기본적으로, Label + Arrow + Temlate(목록) 으로 구성되어있다. 

 

Dropdown (Component)

Template : 펼쳐질 목록의 원본 프리팹 구조

Caption Text : 현재 선택된 값을 표시하는 텍스트

Caption Image : 현재 선택된 값를 표시하는 이미지

Item Text : 목록에 표시될 각 항목 텍스트

Item Image : 목록에 표시될 각 항목 이미지

Value : 현재 선택된 인덱스

alpha Fade Speed : 목록이 열리고 닫힐 때, 투명도가 변하는 속도

Options : 선택 가능한 항목 리스트

On Value Changed : 선택이 바뀌면 호출된다.

 

Input Field 

https://docs.unity3d.com/kr/2018.4/Manual/script-InputField.html

플레이어가 텍스트를 입력할 수 있게 하는 UI

기본적으로, Placeholder(안내문구) + Text (입력된 글자) 로 구성된다.

 

Input Field (Component)

Text Component : Input Field의 콘텐츠로서 사용되는 텍스트 요소

Text : 텍스트

Character Limit : Input Field에 들어갈 수 있는 최대 문자 수

Content Type : 입력 가능한 텍스트 종류

  • Standard : 아무거나 입력 가능
  • Auto 
  • Integer Number : 정수만
  • Decimal Number : 소수 포함 숫자
  • Alphanumeric : 영어 + 숫자
  • Name : 이름 형식 (첫글자를 대문자로 자동변환, Delete키로 변환 규칙 무시가능)
  • Email Address : 이메일 형식 (영숫자 문자열 입력, 최대 하나의 @ 등)
  • Password : 입력시 블라인드 처리 (별표 *)
  • Pin : 입력시 블라인드 처리, 정수만 입력
  • Custom : 직접 설정

Line Type : 줄 입력 방식 설정

  • Single Line : 한줄만
  • Multi Line Submit : 여러줄 허용, 엔터를 누르면 제출
  • Multi Line NewLine : 여러줄 허용, 엔터를 누르면 줄바꿈

PlaceHolder : 안내문구 요소

Caret Blink Rate : Caret 깜빡임 속도

Caret Width : Caret 너비

Custom Caret Color : Caret 색

Selection Color : 텍스트 선택 부분의 배경 컬러

Hide Mobile Input(iOS 에서만) : 기본 텍스트 입력창 숨기기

Read Only : 입력은 불가능 , 선택/복사 가능

Activeate On Select : InputField가 선택 되었을 때, 자동으로 커서 깜빡임 + 키보드 활성화

 

On Value changed : 글자가 바뀔때마다 호출

On Submit : 제출시 호출

On End Edit : 입력이 끝났을 때 호출

'Unity > Tutorial' 카테고리의 다른 글

[Unity] Auto Layout System  (0) 2026.03.05
[Unity] 그래픽 UI (Text, Image, Raw Image, Panel)  (0) 2026.03.02
[Unity] Canvas (UI 시스템)  (0) 2026.03.01
[Unity] Raycast  (0) 2026.02.28
[Unity] Cinemachine (심화)  (0) 2026.02.27