c# - 如何使用 Unity 的 PlayerPrefs 跳过关卡?
问题描述
每个人。
我已经有一段时间了。基本上,我正在开发一款手机游戏,我想设置我的广告按钮以在有人按下它时跳过一个关卡。现在它会跟踪我离开的位置,但是当我按下“重新开始”按钮并跳过我在尝试重新启动之前刚刚离开的级别时,它不会重置。
我尝试使用两个不同的函数来完成这项工作——但首先,这里是重点和问题——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();
这两个脚本都做同样的事情。对于如何解决该问题,我们将不胜感激。先感谢您。
解决方案
在StartOver()你提到这个
PlayerPrefs.DeleteKey("level");
但是在SkipMe(), SkipAdFunction()你写了这个
PlayerPrefs.SetInt("Level", sceneNo + 1);
看到Level,你提到了不同的键,键是区分大小写的,所以改变它
推荐阅读
- matlab - 了解 min、max、meshgrid 函数以在模式识别中绘制 MED 边界
- oracle - 为什么我的事务事实表会生成 ORA-00920:无效的关系运算符错误?
- c# - 使用 c# 创建 XML 文件,如下格式
- azure - Azure 应用服务 VNET 与内部 DNS 集成
- html - SVG 没有出现在 Firefox 中
- .net - 项目可以引用其他项目中未在 .NET Core/.NET Standard 中直接引用的类
- java - 如何将单击的图像从 GridView 传递到自定义警报对话框
- c# - Count() 列表中的特定属性 c#
- android - Tabhost 内容未显示
- python - 尝试在python中创建一个坐标圈