0

我目前正在尝试为我的游戏添加一个升级系统,该级别系统在游戏场景中工作。但是,我有多个场景。我怎么能添加一个升级场景,让玩家选择升级什么技能,这会贯穿整个场景。我需要将关卡系统设为静态吗?

4

3 回答 3

2

您可以使用 DontDestroyOnLoad 方法在场景之间携带对象,这样您可以确保 Player 对象或包含您的播放器数据的对象转到另一个充满先前信息的场景。

详细了解Unity API 文档

于 2019-03-31T00:37:12.033 回答
1

您可以使您的级别变量成为一个static变量,使其成为所有脚本/场景的通用值。我认为这对你来说是最好的。 PlayerPrefs还不错,但是,您可能需要PlayerPrefs.DeleteKey重新应用新的并更新旧的。太复杂了,用静态变量。

看看这个 Unity 链接 - https://unity3d.com/learn/tutorials/topics/scripting/statics

准确地阐明了我想说的但更详细的内容。

于 2019-03-31T05:03:44.133 回答
1

您可以使用PlayerPrefs在多个场景中保存您的关卡。您只需在升级场景中分配一个值,然后在加载新值时访问该值。

PlayerPrefs.GetInt(string key)获取'key'中变量的值。

PlayerPrefs.SetInt(string key, int value)将“值”存储在“键”中的变量中

升级

// Access the previous value
int speed = PlayerPrefs.GetInt("Speed");

// Increment the value
speed++;

/// Store the value
PlayerPrefs.SetInt("Speed", speed);

负载水平

void Start
{
    // Load stats
    int speed = PlayerPrefs.GetInt("Speed");
    int strength = PlayerPrefs.GetInt("Strength");
    int health = PlayerPrefs.GetInt("Health");
    int stamina = PlayerPrefs.GetInt("Stamina");
}
于 2019-03-30T20:35:03.040 回答