Unity 간단한 메인 메뉴와 옵션 메뉴 구현
2024. 12. 20. 01:23ㆍUnity
Unity 간단한 메인 메뉴와 옵션 메뉴 구현
게임의 메인 메뉴와 옵션 메뉴는 게임 플레이로 진입하기 전에 플레이어가 설정을 조정하거나 선택을 할 수 있도록 돕는 중요한 인터페이스입니다. Unity를 사용하면 UI 시스템을 활용하여 이러한 메뉴를 쉽게 구현할 수 있습니다. 이번 포스팅에서는 간단한 메인 메뉴와 옵션 메뉴를 만들어 보겠습니다.
1. 프로젝트 설정
1) 새 씬 생성
- File > New Scene을 클릭하여 새로운 씬을 생성합니다.
- 씬 이름을 MainMenu로 저장합니다.
2) UI Canvas 추가
- Hierarchy 창에서 Create > UI > Canvas를 선택하여 UI를 위한 Canvas를 생성합니다.
- 기본적으로 Canvas와 Event System이 함께 생성됩니다.
3) UI 레이아웃 구성
Canvas 안에 텍스트, 버튼, 슬라이더와 같은 UI 요소를 배치합니다.
2. 메인 메뉴 구현
1) 메인 메뉴 UI 구성
- 제목 텍스트 추가
- UI > Text - TextMeshPro를 선택하여 제목을 추가합니다.
- RectTransform을 사용해 화면 상단에 배치합니다.
- 버튼 추가
- UI > Button을 선택하여 다음 버튼을 추가합니다:
- Start Game
- Options
- Quit
- UI > Button을 선택하여 다음 버튼을 추가합니다:
- 각 버튼의 텍스트를 적절히 수정합니다.
2) 버튼 동작 연결
MainMenuManager 스크립트를 작성하여 버튼 동작을 처리합니다.
using UnityEngine;
using UnityEngine.SceneManagement;
public class MainMenuManager : MonoBehaviour
{
public void StartGame()
{
// 게임 씬으로 이동
SceneManager.LoadScene("GameScene");
}
public void OpenOptions()
{
// 옵션 메뉴 활성화
Debug.Log("Options Menu Opened");
}
public void QuitGame()
{
// 애플리케이션 종료
Debug.Log("Game Quit");
Application.Quit();
}
}
- 스크립트를 Canvas나 Empty Object에 추가합니다.
- 각 버튼의 OnClick() 이벤트에 위의 함수를 연결합니다.
3. 옵션 메뉴 구현
1) 옵션 메뉴 UI 구성
- Canvas 안에 빈 GameObject를 생성하고 이름을 OptionsMenu로 설정합니다.
- OptionsMenu 안에 슬라이더(Slider)와 토글(Toggle)을 추가합니다.
- 예:
- 볼륨 슬라이더(Volume Slider)
- 화면 모드 토글(Fullscreen Toggle)
- 기본적으로 OptionsMenu는 비활성화합니다.
- Inspector > GameObject 활성화 상태를 비활성화합니다.
2) 옵션 메뉴 스크립트 작성
using UnityEngine;
using UnityEngine.UI;
public class OptionsMenuManager : MonoBehaviour
{
public Slider volumeSlider;
public Toggle fullscreenToggle;
void Start()
{
// 초기 값 설정
volumeSlider.value = AudioListener.volume;
fullscreenToggle.isOn = Screen.fullScreen;
}
public void SetVolume(float value)
{
AudioListener.volume = value;
}
public void SetFullscreen(bool isFullscreen)
{
Screen.fullScreen = isFullscreen;
}
public void CloseOptionsMenu(GameObject optionsMenu)
{
optionsMenu.SetActive(false);
}
}
- OptionsMenuManager를 OptionsMenu 객체에 추가합니다.
- 슬라이더와 토글의 OnValueChanged() 이벤트에 해당 함수 연결.
4. 메뉴 간 전환
1) 메인 메뉴에서 옵션 메뉴로 전환
- Start Game과 Quit는 그대로 두고, Options 버튼을 누르면 OptionsMenu를 활성화합니다.
2) OptionsMenu 닫기 버튼
OptionsMenu 안에 Back 버튼을 추가하여 다시 메인 메뉴로 돌아갑니다.
public void OpenOptions(GameObject optionsMenu)
{
optionsMenu.SetActive(true);
}
- 버튼의 OnClick() 이벤트에 OptionsMenu 활성화/비활성화 함수 연결.
5. UI 디자인 팁
- 폰트와 색상
- UI의 텍스트와 버튼에 일관된 폰트와 색상을 적용하여 메뉴가 깔끔하게 보이도록 합니다.
- 애니메이션 추가
- Unity의 Animator를 사용해 버튼 클릭 시 간단한 애니메이션 효과를 추가할 수 있습니다.
- 사운드
- 버튼 클릭 소리를 추가하여 사용자 경험을 향상시킵니다.
- AudioSource를 Canvas에 추가하고 버튼 이벤트에 연결합니다.
- 버튼 클릭 소리를 추가하여 사용자 경험을 향상시킵니다.
6. 최종 구조 예시
Hierarchy 구조:
Canvas
├── MainMenu
│ ├── Title (TextMeshPro)
│ ├── StartButton (Button)
│ ├── OptionsButton (Button)
│ ├── QuitButton (Button)
├── OptionsMenu
│ ├── VolumeSlider (Slider)
│ ├── FullscreenToggle (Toggle)
│ ├── BackButton (Button)
7. 요약
Unity에서 메인 메뉴와 옵션 메뉴를 구현하는 과정은 간단하면서도 강력한 UI 시스템을 활용하는 방법을 보여줍니다.
- 메인 메뉴를 통해 게임 시작, 옵션 열기, 종료 등의 기본 기능 제공.
- 옵션 메뉴에서 볼륨, 화면 모드와 같은 설정 제어.
- 버튼, 슬라이더, 토글을 사용하여 직관적인 사용자 경험 설계.
'Unity' 카테고리의 다른 글
Unity 사운드 이펙트와 배경 음악 설정 (0) | 2024.12.20 |
---|---|
Unity 사운드 파일 추가 및 관리 (0) | 2024.12.20 |
Unity 게임 HUD 만들기 (체력 바, 미니맵, 점수 등) (0) | 2024.12.20 |
Unity UI 기초: 버튼, 텍스트, 이미지 (1) | 2024.12.16 |
Unity 애니메이션 이벤트 (0) | 2024.12.15 |