1.首先要定义一个bool值来判断是不是第一次进入【第一关】/【某个需要新手引导的关卡】。默认为真,当玩家第二次进入该场景的时候就将该bool值设为false。
每次进入这个第一关的时候先判断这个bool值,为真,进行新手引导,反之,不进行。
那么怎么才能判断玩家是不是第二次进入该场景呢? 这里我把这个值存储在了管理关卡跳转的类中。有人可能说,我直接拿该场景和最大进度进行比较不就可以了吗?这个要看你是怎么存储最大进度的了,像我都是存在每一关的【退出按钮】中的,这样,如果我第一关失败了,直接按了【重玩】,它是不能判断出我已经是第二次进入这个关卡了。
if (nextScene == "Start_boat")//如果将要进入的是船关卡 { if (PlayerPrefs.HasKey("isFirstInBoat"))//第二次进入船关卡就把这个值设为false { if (PlayerPrefs.GetInt("isFirstInBoat") == 1) { isFirstInBoat = false; Save._instance.SaveFirstBoat(isFirstInBoat);//关闭新手引导(加载船场景的时候不会再进行 } } else { Save._instance.SaveFirstBoat(isFirstInBoat);//第一次进入船关卡,把这个值设为true } }
if (PlayerPrefs.GetInt("isFirstInBoat") == 1) { //进行新手引导 GetComponent<GraphicRaycaster>().enabled=false; blackMaskPanel.SetActive(true); blackMaskCanvas.DOFade(1f,3f); helpText.text =Language._instance.helpTexts[0]; //开始侦测鼠标点击 listenHelpClick = true; } else if (PlayerPrefs.GetInt("isFirstInBoat") == 0) { //不进行操作 GetComponent<GraphicRaycaster>().enabled = true; }