복습: 레벨 선택
Coddy Unity 여정의 실제 게임 만들기 섹션에 포함된 레슨. 56개 중 21번째.
챌린지
쉬움레벨 선택 화면입니다. 빌드에는 Menu(인덱스 0), Level1, Level2, Level3이 나열되어 있습니다. Menu에는 버튼이 세 개 있으며, Inspector에서 LevelSelect 스크립트의 levelButtons에 넣고, Progress 객체도 하나 둡니다. 각 레벨에서 화살표 키로 Player를 금색 Goal까지 이동합니다. Goal의 스크립트(준비됨)는 레벨의 빌드 인덱스를 사용해 Progress.Instance.LevelDone(level)을 호출합니다.
Progress.cs:
- Progress는 게임 전체에 걸쳐 유지되며 언제나 하나만 존재합니다.
Progress.Instance로 접근하지만, Menu가 로드될 때마다 새로 하나를 만듭니다. unlocked는 플레이어가 플레이할 수 있는 가장 높은 레벨입니다(시작 시 1).LevelDone(int level)은 다음 레벨을 잠금 해제하고, 이미 열려 있던 레벨은 잠그지 않으며, Menu로 돌아갑니다.
LevelSelect.cs: Start에서 각 버튼에 해당 레벨을 로드하는 리스너를 지정하고(첫 번째 버튼은 Level1, 이런 식으로), 레벨이 잠금 해제된 경우에만 버튼을 클릭할 수 있도록 합니다.
Play를 누르고, 순서대로 레벨을 플레이한 다음 Level 1을 다시 플레이하고, Check를 누르세요.
직접 해보기
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.SceneManagement;
public class LevelSelect : MonoBehaviour
{
public Button[] levelButtons;
void Start()
{
// 각 버튼은 해당 레벨을 열며, 잠긴 레벨은 클릭할 수 없습니다
}
}