Unity C#字符级系统多个场景

时间:2019-03-30 19:19:37

标签: c# unity3d

我目前正在尝试向游戏中添加升级系统,该升级系统可在游戏场景中使用。但是,我有多个场景。我如何添加一个升级场景,玩家可以选择升级场景所需的技能。我需要将关卡系统设为静态吗?

3 个答案:

答案 0 :(得分:1)

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

有关Redis Sentinel的更多信息

答案 1 :(得分:0)

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

PlayerPrefs.GetInt(string 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");
}

答案 2 :(得分:0)

您可以将级别变量设置为static变量,这使其成为所有脚本/场景的通用值。我认为那是最适合您的。 PlayerPrefs不错,您可能需要PlayerPrefs.DeleteKey并重新应用新的并更新旧的。太复杂了,请使用静态变量。

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

确切地阐明了我想说的内容,但对其进行了详细说明。