C# 与玩家参考统一保存硬币的问题
我使用PlayerPrefs在每个关卡上保存收集的硬币。在差异游戏中,当找到一个物品时,玩家得到一枚硬币,并将其与玩家参考一起保存。该硬币值用于在水平选择屏幕中显示。问题是当我第一次完成关卡时,它在关卡选择屏幕上显示收集的硬币,当我再完成几次时,关卡选择屏幕上的值保持不变,硬币没有加起来: 这是我用PlayerPrefs保存硬币的脚本:C# 与玩家参考统一保存硬币的问题,c#,unity3d,C#,Unity3d,我使用PlayerPrefs在每个关卡上保存收集的硬币。在差异游戏中,当找到一个物品时,玩家得到一枚硬币,并将其与玩家参考一起保存。该硬币值用于在水平选择屏幕中显示。问题是当我第一次完成关卡时,它在关卡选择屏幕上显示收集的硬币,当我再完成几次时,关卡选择屏幕上的值保持不变,硬币没有加起来: 这是我用PlayerPrefs保存硬币的脚本: if (result.collider.CompareTag("Images")) {
if (result.collider.CompareTag("Images"))
{
Debug.Log("Hit");
result.collider.enabled = false;
tmpCircle = Instantiate(krug1);
tmpCircle.SetActive(true);
tmpCircle.transform.SetParent(canvas.transform, true);
tmpCircle.transform.position = new Vector3(result.point.x, result.point.y, result.point.z);
tmpCircle.transform.localScale = new Vector3(transform.localScale.x * 2f, transform.localScale.y * 2f, transform.localScale.z);
circle.Play("CircleAnim");
score += 1;
diff -= 1;
coins += 1;
score1.text = " " + score;
PlayerPrefs.SetInt("Coins", coins);
PlayerPrefs.Save();
item.Play();
}
这是我在LevelSelection屏幕中显示硬币的脚本:
void Start()
{
coins.text = PlayerPrefs.GetInt("Coins", 0).ToString();
}
除非它在代码中的其他地方,否则您在每次运行关卡时都会设置您的硬币,而不会先读取它。每次启动关卡时,您都应首先读取硬币数据,否则将被覆盖 在级别开始时,您应该包括
void Start()
{
coins= PlayerPrefs.GetInt("Coins", 0);
}
除非它在代码中的其他地方,否则您在每次运行关卡时都会设置您的硬币,而不会先读取它。每次启动关卡时,您都应首先读取硬币数据,否则将被覆盖 在级别开始时,您应该包括
void Start()
{
coins= PlayerPrefs.GetInt("Coins", 0);
}
谢谢,这很有效,我把
PlayerPrefs.GetInt(“硬币”,0)
放在更新方法的顶部,这就是它不起作用的原因谢谢,这很有效,我把PlayerPrefs.GetInt(“硬币”,0)
放在更新方法的顶部,这就是它不起作用的原因