패널 켜기와 끄기
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)를 사용하면 상태를 전환할 수 있습니다.
챌린지
쉬움초원 게임에 메뉴를 추가하세요. Menu.cs에 Start()를 작성하세요.
SetActive(false)로menuPanel과helpPanel을 숨기세요.menuButton은 메뉴를 표시하고mover.enabled = false로 설정합니다.resumeButton은 메뉴를 숨기고mover.enabled = true로 설정합니다.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 플레이그라운드