2024. 12. 16. 21:18ㆍUnity
Unity UI 기초: 버튼, 텍스트, 이미지
Unity의 UI(User Interface) 시스템은 게임에서 필수적인 인터페이스 요소를 쉽게 추가하고 제어할 수 있는 강력한 도구입니다. 버튼, 텍스트, 이미지와 같은 기본 UI 요소를 이해하고 활용하는 것은 플레이어와 게임 간의 상호작용을 디자인하는 데 중요한 첫걸음입니다. 이번 포스팅에서는 Unity UI의 기초 요소들을 살펴보고, 간단한 UI를 구현하는 방법을 배워보겠습니다.
1. Unity UI 개요
Unity UI는 Canvas라는 UI 시스템의 기본 객체를 중심으로 작동합니다.
- Canvas: UI 요소를 배치하고 렌더링하는 공간입니다.
- Event System: UI 요소와 상호작용을 처리하는 시스템입니다.
Unity UI는 RectTransform을 사용하여 2D 화면 공간에서의 위치, 크기, 정렬 등을 제어합니다.
2. Canvas 생성 및 설정
1) Canvas 생성
- Hierarchy 창에서 Create > UI > Canvas를 선택합니다.
- Canvas와 함께 기본적으로 Event System이 생성됩니다.
2) Canvas 종류
- Screen Space - Overlay: 기본 설정. UI가 화면을 기준으로 렌더링됩니다.
- Screen Space - Camera: 특정 카메라를 기준으로 UI가 렌더링됩니다.
- World Space: 3D 공간에서 UI를 배치합니다.
3) UI의 해상도와 비율 설정
Canvas의 Canvas Scaler를 활용해 UI가 다양한 해상도에서 올바르게 표시되도록 설정합니다.
- UI Scale Mode: Scale With Screen Size를 선택하여 화면 크기에 따라 UI 크기를 조정합니다.
3. 버튼(Button)
1) 버튼 생성
- Hierarchy 창에서 Create > UI > Button을 선택합니다.
- Canvas 안에 Button이 생성됩니다.
2) 버튼 구성 요소
- Text: 버튼의 이름이나 설명을 표시하는 자식 객체.
- Image: 버튼의 배경을 표시하는 컴포넌트.
- Button: 클릭 이벤트를 처리하는 컴포넌트.
3) 버튼 클릭 이벤트 연결
- 버튼을 선택하고 Inspector 창에서 Button 컴포넌트를 확인합니다.
- OnClick() 이벤트 목록에 함수를 연결합니다.
4) 버튼 동작 스크립트 예제
using UnityEngine;
public class ButtonExample : MonoBehaviour
{
public void OnButtonClick()
{
Debug.Log("버튼이 클릭되었습니다!");
}
}
- 스크립트를 Canvas 또는 다른 게임 오브젝트에 추가한 뒤, OnClick() 이벤트에 연결합니다.
4. 텍스트(Text)
1) 텍스트 생성
- Hierarchy 창에서 Create > UI > Text - TextMeshPro를 선택합니다.
- 텍스트 객체가 Canvas 안에 생성됩니다.
2) 텍스트 설정
- TextMeshPro를 사용하면 더 나은 품질의 텍스트 렌더링이 가능합니다.
- Inspector 창에서 폰트, 크기, 색상 등을 설정합니다.
3) 텍스트 내용 변경
스크립트를 사용해 텍스트 내용을 동적으로 변경할 수 있습니다.
using TMPro;
using UnityEngine;
public class TextExample : MonoBehaviour
{
public TextMeshProUGUI messageText;
void Start()
{
messageText.text = "Hello, Unity UI!";
}
}
5. 이미지(Image)
1) 이미지 생성
- Hierarchy 창에서 Create > UI > Image를 선택합니다.
- Canvas 안에 Image 객체가 생성됩니다.
2) 이미지 설정
- Inspector 창에서 Source Image 필드에 원하는 이미지를 할당합니다.
- Color 설정으로 투명도 및 색상을 조정할 수 있습니다.
3) 동적으로 이미지 변경
using UnityEngine;
using UnityEngine.UI;
public class ImageExample : MonoBehaviour
{
public Image uiImage;
public Sprite newSprite;
void ChangeImage()
{
uiImage.sprite = newSprite;
}
}
6. UI 요소 정렬 및 배치
1) Anchor(앵커)
RectTransform의 Anchor를 사용해 UI 요소를 부모 Canvas나 다른 요소에 상대적으로 배치합니다.
- 상하좌우 배치: 앵커를 화면 상단, 하단, 중앙 등에 설정.
2) Grid Layout Group
UI 요소를 그리드 형태로 정렬하려면 Grid Layout Group 컴포넌트를 사용합니다.
- 빈 GameObject를 생성하고 Grid Layout Group을 추가합니다.
- 자식으로 UI 요소(Button, Image 등)를 추가합니다.
7. 간단한 UI 프로젝트 예제
목표: "시작" 버튼을 클릭하면 텍스트 변경
- UI 구성
- Canvas 생성.
- 버튼(Button)과 텍스트(Text - TextMeshPro) 추가.
- 스크립트 작성
using TMPro;
using UnityEngine;
public class SimpleUI : MonoBehaviour
{
public TextMeshProUGUI messageText;
public void OnStartButtonClick()
{
messageText.text = "게임이 시작되었습니다!";
}
}
- 버튼 이벤트 연결
- Button의 OnClick() 이벤트에 OnStartButtonClick() 함수 연결.
8. 요약
Unity UI 시스템을 사용하면 다음과 같은 작업을 쉽게 구현할 수 있습니다:
- 버튼으로 사용자 입력 처리.
- 텍스트로 메시지 표시.
- 이미지를 활용해 디자인 강화.
'Unity' 카테고리의 다른 글
Unity 간단한 메인 메뉴와 옵션 메뉴 구현 (0) | 2024.12.20 |
---|---|
Unity 게임 HUD 만들기 (체력 바, 미니맵, 점수 등) (0) | 2024.12.20 |
Unity 애니메이션 이벤트 (0) | 2024.12.15 |
Unity 캐릭터에 애니메이션 적용하기 (0) | 2024.12.15 |
Unity Animator 컨트롤러 및 애니메이션 트리 (0) | 2024.12.15 |