Menu
CoddyTech

패널 켜기와 끄기

Coddy Unity 여정의 실제 게임 만들기 섹션에 포함된 레슨. 56개 중 9번째.

패널은 UI 이미지로, 보통 화면 전체에 걸쳐 늘어나며 버튼과 텍스트를 자식으로 포함합니다. 패널에 SetActive(false)를 적용하면 패널 내부의 모든 요소와 함께 패널이 숨겨지고, 숨겨져 있는 동안에는 버튼을 클릭할 수 없습니다. 패널이 표시되어 있으면 패널의 이미지가 아래에 있는 요소를 대상으로 한 클릭을 가로채므로, 전체 화면 패널 뒤에 있는 버튼은 누를 수 없습니다. 이 맵은 모서리에 있는 버튼을 눌러 열고 맵에 있는 버튼을 눌러 닫습니다:

public GameObject mapPanel;
public Button mapButton;
public Button closeButton;

void Start()
{
    mapPanel.SetActive(false);
    mapButton.onClick.AddListener(() => mapPanel.SetActive(true));
    closeButton.onClick.AddListener(() => mapPanel.SetActive(false));
}

패널은 표시된 상태에서 편집하기가 더 쉬우므로, 패널이 켜진 상태로 씬을 저장하고 Start()에서 패널을 숨기는 경우가 많습니다. 패널을 여는 스크립트는 해당 패널에 두지 마세요. 비활성 GameObject는 Start() 또는 Update()가 실행되지 않으므로, 숨겨진 상태로 저장된 패널에 스크립트를 두면 버튼을 연결할 수 없습니다. 계속 활성 상태인 Canvas나 게임 매니저 오브젝트에 두는 것이 좋습니다. mapPanel.activeSelf는 패널이 켜져 있는지 여부를 알려주므로, mapPanel.SetActive(!mapPanel.activeSelf)를 사용하면 상태가 반전됩니다.

challenge icon

챌린지

쉬움

초원 게임에는 메뉴가 필요합니다. Menu.cs는 Canvas(HUD)에 있고, 씬에서 필드를 연결합니다. 씬에서는 두 패널이 모두 켜져 있어 편집하기 쉽습니다. 다음과 같이 Start()를 작성하세요.

  • 게임이 시작되면 menuPanel과 helpPanel을 숨깁니다.
  • menuButton은 메뉴 패널을 열고, 해당 패널의 resumeButton은 메뉴 패널을 닫습니다.
  • 메뉴 패널의 helpButton은 메뉴 패널을 도움말 패널로 바꾸고, 도움말 패널의 backButton은 메뉴 패널로 되돌립니다.
  • 메뉴가 열려 있는 동안 플레이어는 걸을 수 없습니다. 메뉴가 열릴 때 mover 스크립트를 비활성화하고, Resume를 눌러 메뉴를 닫으면 다시 활성화합니다.

Play를 누르고, 걸어 다니고, 메뉴와 도움말을 연 다음 Check를 누르세요.

직접 해보기

using UnityEngine;
using UnityEngine.UI;

public class Menu : MonoBehaviour
{
    public GameObject menuPanel;
    public GameObject helpPanel;
    public Button menuButton;
    public Button resumeButton;
    public Button helpButton;
    public Button backButton;
    public PlayerMover mover;

    void Start()
    {
        // 두 패널을 모두 숨긴 다음 Menu, Resume, Help, Back 버튼의 동작을 연결합니다
    }
}
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

실제 게임 만들기의 모든 레슨