C# 如何计算Unity3D中PlayerPrefs关键点的数量?

C# 如何计算Unity3D中PlayerPrefs关键点的数量?,c#,unity3d,C#,Unity3d,我试图做一个益智游戏,其中有3个游戏模式(正常模式,定时器模式,点击模式)和50级。所有3种模式的50个电平相同,但在定时器模式下有倒计时定时器,在抽头模式下有定时器和抽头。在正常模式下,没有限制 现在我根据PlayerPrefs中的模式保存每个关卡 我没有锁定所有的水平,但定时器模式和水龙头模式被锁定。只有正常模式被解锁 这就是我想要的。要解锁计时器模式,请先播放任意10个正常模式级别;要解锁轻触模式,请先播放任意10个计时器模式级别 如何跟踪完成了多少个级别 if (levels.level

我试图做一个益智游戏,其中有3个游戏模式(正常模式,定时器模式,点击模式)和50级。所有3种模式的50个电平相同,但在定时器模式下有倒计时定时器,在抽头模式下有定时器和抽头。在正常模式下,没有限制

现在我根据PlayerPrefs中的模式保存每个关卡

我没有锁定所有的水平,但定时器模式和水龙头模式被锁定。只有正常模式被解锁

这就是我想要的。要解锁计时器模式,请先播放任意10个正常模式级别;要解锁轻触模式,请先播放任意10个计时器模式级别

如何跟踪完成了多少个级别

if (levels.levelInfo[0].isCompleted)
{
    //Level 1 Completed
}
if (levels.levelInfo[1].isCompleted)
{
    //Level 2 Completed
}
下面是代码这是我在完成后如何保存每个级别

if (isNormalMode) {
    PlayerPrefs.SetString ("norm"+levelStr, levelStr);
    } 

if (isTimerMode) {
    PlayerPrefs.SetString ("timer"+levelStr, levelStr);
    }

if (isTapsMode) {
    PlayerPrefs.SetString ("taps"+levelStr, levelStr);
    }

必须在类中表示级别和级别信息,然后在该类中放置另一个类数组。您可以使用该类数组来确定它的级别,索引0为级别1,索引1为级别2

从post中获取
DataSaver
Helper类


然后可以创建级别(例如5个级别):


加载级别:

DataSaver.saveData(levels, "Levels");
加载并检查标高是否已完成:

//Load Saved Data
Levels levels = DataSaver.loadData<Levels>("Levels");
检查级别2是否已完成

if (levels.levelInfo[0].isCompleted)
{
    //Level 1 Completed
}
if (levels.levelInfo[1].isCompleted)
{
    //Level 2 Completed
}

正确设置后,读取级别的正确方法是使用循环找出尚未完成的级别,然后从那里开始

Levels levels = DataSaver.loadData<Levels>("Levels");
for (int i = 0; i < levels.levelInfo.Length; i++)
{
    if (!levels.levelInfo[i].isCompleted)
    {
        Debug.LogFormat("Level ({0}) is not completed", i + 1);
        //Level not completed. Start from here!
    }
}
Levels-Levels=DataSaver.loadData(“Levels”);
对于(int i=0;i
这完全错了。按照下面程序员说的做。同样值得记住的是,简单地说,你不再做这样的游戏了。今天制作游戏需要使用PubNub、Parse、Firebase等。任何模糊地像这里讨论的东西,都只是一个群组云特性。