关卡重载
来源:互联网 发布: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"));
}
}
这样的话我们就可以每打一关实例子下一关了
- 关卡重载
- 关卡
- 关卡设计
- 关卡流
- 关卡设计入门
- 关于关卡的分类
- 关卡设计的基本理论
- 浅谈游戏关卡设计
- 浅谈游戏关卡设计
- 暂定的关卡数据格式
- java CyclicBarrier(关卡)详解
- 关卡设计理论
- 记一次关卡设计
- 设计游戏关卡
- 关卡原型制作思路
- 关卡原型制作思路
- 九、关卡数据
- Unity3D-Streaming关卡
- mysql索引优化
- mysq性能优化---第三章 服务性能剖析
- 第三届程序设计大赛 汽车加油
- DOJO 之深入分析require
- 【D3D11游戏编程】学习笔记二十四:切线空间(Tangent Space)
- 关卡重载
- STL头文件中队列queue的使用
- flex布局文本不换行不显示省略号的解决方法
- L1-038. 新世界
- 关于PHP中string类型的一个小坑$string()['xxxx']
- 每天一道LeetCode-----求一个数的n次方,n是很大很大的数,n用数组存储着
- mysql优化测试
- [SDUT](3343)数据结构实验之二叉树四:(先序中序)还原二叉树
- js中的==和===区别