C# C将当前硬币数量加上硬币总数

C# C将当前硬币数量加上硬币总数,c#,C#,我有两个脚本:播放器脚本和主菜单脚本。玩家收集硬币,并在游戏中显示该分数。当我重新开始游戏时,分数会按原样重置。但我想保存游戏中收集的硬币,并在主菜单中显示总数。我该怎么做 玩家脚本 void Start() { coin = 0; } void OnCollisionEnter2D(Collision2D col) { if (col.gameObject.tag == "Coin") { Destroy(col.gameObject);

我有两个脚本:播放器脚本和主菜单脚本。玩家收集硬币,并在游戏中显示该分数。当我重新开始游戏时,分数会按原样重置。但我想保存游戏中收集的硬币,并在主菜单中显示总数。我该怎么做

玩家脚本

void Start()
{
    coin = 0;
}

void OnCollisionEnter2D(Collision2D col)
{
    if (col.gameObject.tag == "Coin")
    {
        Destroy(col.gameObject);
        coin += 1;
        coinCount.text = coin.ToString();
        PlayerPrefs.SetInt("coins", coin);
        Debug.Log("Coin");
    }
}
主菜单脚本

void Start()
{
    coinText.text = PlayerPrefs.GetInt("coins").ToString();

}
首先,首先移动PlayerPrefs.SetIntcoins,coin;到GameOver函数。PlayerPrefs调用注册表,您不应该每次玩家得到一枚硬币时都设置它

第二,如果您想将您拥有的硬币添加到之前的硬币中,只需按如下方式访问:


PlayerPrefs.SetIntcoins,PlayerPrefs.GetIntcoins+硬币

你在保存数据方面做了哪些尝试?基本上你需要有一个total coins变量,在重置游戏硬币数之前,在游戏结束时更新这个变量。如果您希望在应用程序重新启动时保持该状态,则需要将其保存在某个位置,例如数据库、文件等。。它太宽了,我们无法在这里回答,或者您可以创建一个静态类并保存它there@Steve我不明白你说的静态类是什么意思?PlayerRefs是静态的。。除非您的意思是将信息保存到静态类中,但这仍然不是持久数据。。PlayerPrefs将持久数据保存到注册表。@BrandonMiller根据他的描述,他希望数据在游戏之间保持持久。如果是这样,静态类就足够了。如果他希望即使在游戏关闭后数据仍然存在,他可以将其保存到文件或其他文件中。我不会用player prefs来保存它,因为我认为它应该只存储设置