关卡加锁
1.MapPoint
添加参数
public bool isLocked; //是否锁住
public string levelToCheck; //待检测的关卡,判断是否锁住
2.LevelSelectPlayer中,加入判断
//跳转关卡
if (currentPoint.isLevel && currentPoint.levelToLoad != "" && currentPoint.isLocked == false)
3.LevelManager
设置游戏关卡完成后,跳转场景为关卡选择场景LevelSelectScene
关卡完成后,保存信息(加到跳转新场景之前)
//存储信息
PlayerPrefs.SetInt(SceneManager.GetActiveScene().name + "_unlocked", 1);
//关卡完成后,跳转新场景
SceneManager.LoadScene(levelToLoad);
4.设置levelToLoad
设置levelToLoad为上一关(第一关设置为当前第一关)
MapPoint中Start()设置关卡是否锁住
void Start()
{
if (isLevel && levelToLoad != null)
{
//默认设置锁住
isLocked = true;
if (levelToCheck != null)
{
//检测是否锁住
if (PlayerPrefs.HasKey(levelToCheck + "_unlocked"))
{
if (PlayerPrefs.GetInt(levelToCheck + "_unlocked") == 1)
{
//没被锁
isLocked = false;
}
}
}
//设置相同时,锁打开(设置第一关时)
if(levelToLoad == levelToCheck)
{
isLocked = false;
}
}
}