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