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

时间:2016-07-12 19:56:10

标签: c# unity3d

我有两个场景MAP和GAME。

在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来保存。

1 个答案:

答案 0 :(得分:3)

  

但我似乎无法从检查员那里得到int来保存。

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

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

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

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