我希望制作一个系统,在完成一个系统后解锁下一个级别。 我使用c#代码
如果您完成了1级,则解锁level2等...
mainmenu是构建级别0,级别选择是构建级别1,所以第一级实际上是构建级别2.
public bool isLevel1;
public bool isLevel2;
public bool isLevel3;
public bool isLevel4;
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
}
void OnMouseUp()
{
if (isLevel1)
{
Application.LoadLevel(2);
}
if (isLevel2)
{
Application.LoadLevel(3);
}
if (isLevel3)
{
Application.LoadLevel(4);
}
if (isLevel4)
{
Application.LoadLevel(5);
}
}
我是如何从等级选择中选择等级的。我在主菜单上有类似的东西,但我不知道如何锁定它们然后在完成一个级别后解锁。我有办法锁定它们,但我放弃了它,因为它没有工作。如果有人能够简单地解释它或者指向我错过的指南,那将是一个很大的帮助。因为我找到了一些指南,但他们认为我的水平选择不同,我认为。 我提前感谢你,我愿意回答任何进一步的问题
答案 0 :(得分:2)
我建议PlayerPrefs
可能是做这样的事情的最佳选择,它可以很好地为玩家保存分数,因此保存未锁定的等级也可以。
以下是PlayerPrefs
的一些文档:
http://docs.unity3d.com/ScriptReference/PlayerPrefs.html
这是一个很好的视频链接,显示类似于您想要实现的内容:) https://www.youtube.com/watch?v=uw0kZ72zCvE&feature=youtu.be
答案 1 :(得分:0)
可能在一些空的游戏对象上包含一个脚本(确保你调用Object.DontDestroyOnLoad(transform.gameObject)
以便在等级更改时对象保持不变),并且每次完成一个级别时,更改该空对象中的布尔变量以表示该级别至少已完成一次。然后,如果表示上一级的boolean
已完成true
,则在您的用户界面中解锁下一级。
如果你的角色在完成上一个角色后自动升级到下一个级别,你可以使用OnLevelWasLoaded(int level)
。在这种情况下,level
是刚刚加载的级别的数量(因此对于你来说,3将是你真正的第一级)。然后在此函数中更改空游戏对象的boolean
变量,而不是在上一级别的末尾。如果,当你完成关卡时,你可以进入下一个级别(没有一个解锁选项),这可能是最有用的。