【问题标题】:How to skip a level with Unity's PlayerPrefs?如何使用 Unity 的 PlayerPrefs 跳过关卡?
【发布时间】:2019-11-03 10:44:14
【问题描述】:

每个人。

我已经有一段时间了。基本上,我正在开发一款手机游戏,我想设置我的广告按钮以在有人按下它时跳过一个级别。现在它会跟踪我离开的位置,但当我按下 Start Over 按钮并跳过我在尝试重新启动之前刚刚离开的级别时,它不会重置。

我尝试使用两个不同的函数来完成这项工作——但首先,这里是重点和问题——int "sceneNo" 和 StartOver 函数。我使用 PlayerPrefs 设置了 sceneNo。起来。

sceneNo = PlayerPrefs.GetInt("Level", SceneManager.GetActiveScene().buildIndex);

还有,这是 StartOver 的代码。

public void StartOver()
{
    SceneManager.LoadScene(1);
    PlayerPrefs.DeleteKey("level");
    sceneNo = (SceneManager.GetActiveScene().buildIndex);
}

至于我尝试重置游戏的两个不同功能...

public void SkipMe()
{

    sceneNo = SceneManager.GetActiveScene().buildIndex + 1;
    SceneManager.LoadScene(PlayerPrefs.GetInt("Level", sceneNo));
}

还有现在的……

public void SkipAdFunction()
{
    SceneManager.LoadScene(sceneNo);
    Answer.text = "";
    PlayerPrefs.SetInt("Level", sceneNo + 1);
    sceneNo = (SceneManager.GetActiveScene().buildIndex);

}

最后,这是执行此操作的脚本的其余部分。

void HandleShowResult(ShowResult result) { if (result == ShowResult.Finished) { Playable.GetComponent<LoadScene>().SkipMe();

这两个脚本都做同样的事情。 对于如何解决该问题,我们将不胜感激。提前谢谢你。

【问题讨论】:

  • 1) 你可以编辑你的问题,2) 不要使用 playerprefs。

标签: c# android unity3d


【解决方案1】:

StartOver()中你提到了这个

 PlayerPrefs.DeleteKey("level");

但是在 SkipMe(), SkipAdFunction() 你写了这个

PlayerPrefs.SetInt("Level", sceneNo + 1);

Level,你说的是不同的键,键是区分大小写的,所以改一下

【讨论】:

  • 天哪。我不敢相信我错过了。谢谢。但是,现在脚本跳过了两个级别。
  • 没问题...愉快的编码
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多