我有两个脚本:Player脚本和MainMenu脚本。玩家收集硬币并在游戏中显示该分数。当我重新开始游戏时,分数会按原样重置。但我想保存在游戏中收集的硬币并在主菜单中显示总和。我怎么能这样做?
玩家脚本
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");
}
}
MainMenu脚本
void Start()
{
coinText.text = PlayerPrefs.GetInt("coins").ToString();
}
答案 0 :(得分:1)
首先,将PlayerPrefs.SetInt("coins", coin);
移动到GameOver()函数开始。 PlayerPrefs会调用注册表,每次玩家获得一枚硬币时都不应该设置它。
其次,如果您想要将之前的硬币“添加”到之前的硬币,只需像以下那样访问它:
PlayerPrefs.SetInt("coins", PlayerPrefs.GetInt("coins") + coin);