回顾:选择关卡
本课属于 Coddy Unity 学习旅程的“打造真正的游戏”单元。第 21 课,共 60 课。
本次回顾将本章内容串联起来:使用 DontDestroyOnLoad,让管理器在场景加载后继续存在;按钮则按名称或编号加载场景。完成一个关卡后,菜单会开放下一个关卡。
挑战
简单创建一个关卡选择界面,让关卡在完成后解锁。
Progress.Awake():销毁新创建的对象并返回,否则设置Instance,并调用DontDestroyOnLoad(gameObject)。LevelDone(int level):unlocked = Mathf.Max(unlocked, level + 1);,然后加载Menu。LevelSelect.Start():按钮i加载关卡i + 1(先复制它),并且只有在关卡不高于Progress.Instance.unlocked时才可交互。
按“开始”并完成第 1 关:第 2 关的按钮就会解锁。然后按“检查”。
亲手试试
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.SceneManagement;
public class LevelSelect : MonoBehaviour
{
public Button[] levelButtons;
void Start()
{
// 每个按钮都会打开对应的关卡;锁定的关卡无法点击。
}
}
这节课包含一个小测验。开始学习即可作答,并记录你的进度。
打造真正的游戏中的所有课
自己练习: Unity 在线编辑器