【问题标题】:Unity How to save high score for each specific level?Unity 如何为每个特定级别保存高分?
【发布时间】:2021-06-12 13:18:22
【问题描述】:

我已经断断续续地使用了一年,并且仍在学习。我正在尝试创建一个基本游戏,玩家必须在 android 上的时间倒计时下通过关卡并收集积分。一旦玩家击中一个结束触发器,它将显示收集的点数以及完成它所花费的时间。然后将分数和所用时间的乘积显示高分,这很简单。

高分已经使用 playerprefs 保存,然后高分将显示在每个级别下方的级别选择屏幕上(例如 lvl 1:136、lvl2:245 等...)。我刚刚学会了如何使用 playerprefs 保存一个简单的 int。

我的问题是,如何保存每个单独关卡的高分,然后使用 playerprefs 将其显示在关卡选择屏幕中。

【问题讨论】:

标签: c# android unity3d user-interface


【解决方案1】:

正如我的第一条评论 - PlayerPrefs 与键值对一起使用,因此您可以这样做。

// Setting values
PlayerPrefs.SetInt("Level1", 100);
PlayerPrefs.SetInt("Level2", 200);

// Getting values
int someint = PlayerPrefs.GetInt("Level1");
int someint2 = PlayerPrefs.GetInt("Level2");

所以当你想为每个级别保存它时,你可以这样做。

 //Save Score with scene name as the key and the score as the value
 PlayerPrefs.SetInt(SceneManager.GetActiveScene().name, _score);

你可以把它放在你想要的任何地方。它将始终以当前活动场景的名称作为键。

您还可以保存浮点数和字符串,也可以删除条目。

有关更多信息,请查看 Unity 文档: https://docs.unity3d.com/ScriptReference/PlayerPrefs.html

【讨论】:

  • 我在这里看到了你的逻辑,我一直在尝试利用它,问题是我不知道如何使用它。如何将其保存为 1 级高分,因为我有一个脚本,它只将值保存为“高分”,那么我如何将其保存为 1 级场景?当我达到 2 级时,如何仅将其保存到 2 级场景?我必须继续为它制作每个脚本吗?因为我想做更多的关卡
  • 我更新了我的答案,并包含了获取场景名称并在 PlayerPrefs 中使用它的方法。这是最简单的方法。在这一点上,这实际上是用勺子喂食。如果您仍然无法理解它,请考虑多学习 Unity 并分享您的代码。所以我们可以更好地帮助您。
  • 哈哈抱歉,非常感谢,这对我有用。感谢您有耐心向我展示它是如何完成的。我会更好地学习和理解团结
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-21
相关资源
最近更新 更多