关卡重载

来源:互联网 发布:xboxone 淘宝 编辑:程序博客网 时间:2024/05/01 17:25

最近在写一个打完一关加载下一关的方法,在这跟大家分享一下,如果用的到很开心,用不到就当没看到好吧

首先,我们需要在关卡打开的时候判断我们打了多少关,如果我们用的是联网存的关卡就需要调用数据库里面打了多少关;因为楼主用的是本地保存所以调用本地的数据

这边的话是需要先判断一下是否打的第一关,然后在写的时候楼主发现判不判断都一样;因为在调用的方法里面楼主已经判断过了


 if (PlayerPrefs.GetInt("Level") >= 0)
        {
            section.instance.Instance_chapter();
        }

然后给大家看一下这个方法

public void Instance_chapter()
    {
       
        while (grid_chapter.transform.childCount > 0)//如果当前位置的数不为0;就清除一下,以免重复
        {
            DestroyImmediate(grid_chapter.transform.GetChild(0).gameObject);
        }
        if (PlayerPrefs.GetInt("ID_chapter") == 0)//如果是第一次打,这就是判断
        {
            Prafeb_Chapter.transform.Find("num").gameObject.GetComponent<UILabel>().text = ConingManager.Instance.chapterInFo.InfoDict[1].chapter;
            Prafeb_Chapter.transform.Find("name").gameObject.GetComponent<UILabel>().text = ConingManager.Instance.chapterInFo.InfoDict[1].name;
            GameObject a = Instantiate(Prafeb_Chapter, Prafeb_Chapter.transform.position, Quaternion.identity) as GameObject;
            a.SetActive(true);
            a.name = "OrdinaryChaper" + 1;
            grid_chapter.AddChild(NGUITools.AddChild(grid_chapter.gameObject, a).transform);
            Destroy(a);
        }
        else
        {
            for (int i = 1; i < PlayerPrefs.GetInt("ID_chapter") + 2; i++)
            {
                if (i < PlayerPrefs.GetInt("ID_chapter") + 1)
                {
                    Prafeb_Chapter.transform.Find("newStart").gameObject.GetComponent<UILabel>().text = "已通关";
                }
                if (i == PlayerPrefs.GetInt("ID_chapter") + 1)
                {
                    Prafeb_Chapter.transform.Find("newStart").gameObject.GetComponent<UILabel>().text = "新开启";
                }
     
                Prafeb_Chapter.transform.Find("num").gameObject.GetComponent<UILabel>().text = ConingManager.Instance.chapterInFo.InfoDict[i].chapter;
                Prafeb_Chapter.transform.Find("name").gameObject.GetComponent<UILabel>().text = ConingManager.Instance.chapterInFo.InfoDict[i].name;
                GameObject a = Instantiate(Prafeb_Chapter, Prafeb_Chapter.transform.position, Quaternion.identity) as GameObject;
                a.SetActive(true);
                a.name = "OrdinaryChaper" + i;
                grid_chapter.AddChild(NGUITools.AddChild(grid_chapter.gameObject, a).transform);
                print("够够够kjlkj" + PlayerPrefs.GetInt("ID_chapter"));
                Destroy(a);
                // ReplicaLnternalControl.Instance.Team.SetActive(false);


            }
        }


    }

上面就是实例化章节

如果我们关卡里面有关卡

可以点击后调用方法

这边是楼主实例化十个关卡

内容用的JSOn

public void manager_gaun()
    {
        print("ffhwdhjwgejdgwhjgxjhwegedyutwgxhjgedc");
        copy.SetActive(false);
        guan.SetActive(true);
        // reward.SetActive(true);
        grid.transform.parent.gameObject.SetActive(true);
        //Destroy(transform);
        // instance.guanka();
        while (grid.transform.childCount > 0)
        {
            DestroyImmediate(grid.transform.GetChild(0).gameObject);
        }


        //  PlayerPrefs.SetInt("Level", 10);
        Log.Info("关卡调试", "manager_gaun" + PlayerPrefs.GetInt("Level").ToString());
        if (PlayerPrefs.GetInt("Level") == 0)
        {
            print("日狗");
            Checkpoint.transform.Find("Starts").gameObject.SetActive(false);
            Checkpoint.transform.Find("newStart").gameObject.GetComponent<UILabel>().text = "新开启";
            num.text = ConingManager.Instance.copyInFo.InfoDict[1].number.ToString();
            name.text = ConingManager.Instance.copyInFo.InfoDict[1].censorship;
            check = Instantiate(Checkpoint, transform.position, Quaternion.identity) as GameObject;
            physicalStrength.text = "x6";




            GameObject gp = NGUITools.AddChild(grid.gameObject, check);
            grid.AddChild(gp.transform);
            Destroy(check);
        }
        else
        {
            for (int i = 0; i < PlayerPrefs.GetInt("Level") + 1; i++)
            {


                print("我日" + PlayerPrefs.GetInt("Level"));
                if (i < PlayerPrefs.GetInt("Level"))
                {
                    print("lalalalalal" + PlayerPrefs.GetInt("Level"));
                    Checkpoint.transform.Find("Starts").gameObject.SetActive(true);
                    Completion.text = "已完成";
                }
                if (i == PlayerPrefs.GetInt("Level"))
                {
                    Checkpoint.transform.Find("Starts").gameObject.SetActive(false);
                    physicalStrength.text = "x6";
                    Completion.text = "新开启";
                }


                num.text = ConingManager.Instance.copyInFo.InfoDict[i + 1].number.ToString();
                name.text = ConingManager.Instance.copyInFo.InfoDict[i + 1].censorship;
                check = Instantiate(Checkpoint, transform.position, Quaternion.identity) as GameObject;


                GameObject gp = NGUITools.AddChild(grid.gameObject, check);
                gp.name = "" + i;
                grid.AddChild(gp.transform);
                Destroy(check);
                print("diyige");
                if (i == 5)
                {
                    break;
                }
            }
            print("fxhjgehjgtrjuhghjregfvnfuycteugtr" + PlayerPrefs.GetInt("Level"));
        }
    }


这样的话我们就可以每打一关实例子下一关了

原创粉丝点击