我目前正在尝试在我的游戏中添加一个关卡系统,关卡系统在游戏场景中工作。然而,我有多个场景。我如何才能添加一个升级场景,让玩家选择升级什么技能,这将贯穿整个场景。我需要将关卡系统设为静态的吗?
发布于 2019-03-31 08:37:12
您可以使用DontDestroyOnLoad方法在场景之间携带对象,这样可以确保播放器对象或包含您的播放器数据的对象转到另一个填充了先前信息的场景。
Unity API Documentation上的Se更多信息
发布于 2019-03-31 04:35:03
可以使用PlayerPrefs在多个场景中保存关卡。您只需在关卡场景中指定一个值,并在加载新值时访问该值。
PlayerPrefs.GetInt(string key)获取'key‘中变量的值。
PlayerPrefs.SetInt(string key, int value)将“value”存储在“key”的变量中
Level Up
// 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-31 13:03:44
您可以将level变量设置为static变量,从而使其成为所有脚本/场景的通用值。我认为这对你来说是最好的。PlayerPrefs不坏,但是,您可能需要PlayerPrefs.DeleteKey,并重新应用新的和更新旧的。太复杂了,使用静态变量。
查看Unity链接- https://unity3d.com/learn/tutorials/topics/scripting/statics
澄清了我想要说的,但更详细地阐述了。
https://stackoverflow.com/questions/55434903
复制相似问题