Menu
CoddyTech

패널 켜기와 끄기

Coddy Unity 여정의 실제 게임 만들기 섹션에 포함된 레슨. 60개 중 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에 Start()를 작성하세요.

  1. SetActive(false)로 menuPanel과 helpPanel을 숨기세요.
  2. menuButton은 메뉴를 표시하고 mover.enabled = false로 설정합니다. resumeButton은 메뉴를 숨기고 mover.enabled = true로 설정합니다.
  3. helpButton은 메뉴를 숨기고 도움말을 표시합니다. backButton은 반대로 동작합니다.

‘플레이’를 누르고 메뉴를 여세요. 그러면 Resume을 누를 때까지 플레이어가 걸을 수 없습니다. 그런 다음 ‘확인’을 누르세요.

직접 해보기

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 버튼을 연결합니다
    }
}

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

직접 연습해 보세요: Unity 플레이그라운드