c# - 如何使用检查器在单击按钮时设置 PlayerPrefs 以切换场景?

标签 c# unity-game-engine

我有两个场景 map 和游戏。

在 map 上,我想使用按钮上的变量(在检查器中)来构建游戏中的关卡。

我有三种游戏模式 {1, 2, 3} 我还有一个需要达到的分数{我希望能够设置这个分数}

单击按钮后,我希望它保存到 PlayerPrefs,然后在 GAME 中它将读取保存的 PlayerPrefs,然后加载该数据。

按钮脚本

public class LevelButton : MonoBehaviour {

    public float GameScoreNeeded;
    public int GameMode;
}

public void MakeLevel()
{
    PlayerPrefs.SetInt("GameMode") = GameMode;
    PlayerPrefs.SetFloat("GameScoreNeedeed") = GameScoreNeeded;
}

关于游戏

void Start(){
BuildLevel();
}

public void BuildLevel(){
    gameMode = PlayersPrefs.GetInt("GameMode");
    gameScoreNeeded = PlayersPrefs.GetFloat("GameScoreNeeded"); 
}

//Rest of code

这是我认为需要发生的事情,但我似乎无法从检查器中获取要保存的 int

最佳答案

but I can't seem to get the int from the inspector to save.

PlayerPrefs.SetInt("GameMode") = GameMode;
PlayerPrefs.SetFloat("GameScoreNeedeed") = GameScoreNeeded;

您没有正确使用PlayerPrefs。它需要两个参数。关键和值(value)。加载代码似乎正确,但保存代码则不然。以下是保存您的值(value)观的正确方法:

PlayerPrefs.SetInt("GameMode", GameMode);
PlayerPrefs.SetFloat("GameScoreNeedeed", GameScoreNeeded);

在上述代码之后调用 PlayerPrefs.Save(); 是有意义的。然后,您可以使用 PlayersPrefs.GetIntPlayersPrefs.GetFloat 稍后读取保存的值。

关于c# - 如何使用检查器在单击按钮时设置 PlayerPrefs 以切换场景?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38337822/

相关文章:

unity-game-engine - 扩展 UnityEngine.UI.Image 并添加 Inspector 中可用的额外字段

unity-game-engine - 以编程方式卡住 Z 轴旋转 - Unity 2D

c# - Entity Framework 中的 "The data reader has more than one field"错误

c# - 在计算模拟器中分析 Azure

c# - 如何获取光标所在函数中方法的方法体

tomcat - 使用 Unity 连接到 Web 服务器

ios - 如何在 Unity 中为 iOS 设置剥离级别

c# - 测试项目数组是否在预定义数组中的最佳方法是什么

c# - 对表进行反规范化或在 Entity Framework 中使用联接

c# - Unity如何 "power bounce"一个物体从另一个物体相对于它的角度?