我对团结有点新意,请帮助我。
我怎样才能保存这样的东西?
public float GetMoneyPerSec()
{
float tick = 0;
foreach (UpgradeManager item in items)
{
tick += item.tickValue;
}
return tick;
}
答案 0 :(得分:2)
保存'文件中的数据可以使用xml或JSON序列化为文本文档,并在游戏运行时反序列化。这比播放器首选项更方便,因为您可以轻松地在任何文本编辑器中复制或编辑值。
要在场景之间保留数据,只需确保保存数据的类是静态类(使用单例方法),或者设置为“不要在加载时销毁”的类。
答案 1 :(得分:1)
您可以使用PlayerPrefs
。我们假设您有类似float tick = GetMoneyPerSec()
的内容,然后存储它:
PlayerPrefs.SetFloat("MoneyPerSec", tick);
并使用以下命令检索它:
float f = PlayerPrefs.GetFloat("MoneyPerSec");
答案 2 :(得分:0)
Gerard Roche和Sakkas的回答是正确的
要在场景之间传递数据,您只需要PlayerPrefs
根据您的代码,保存ticks
的方法是:
public float CalculateMoneyPerSec()
{
float tick = 0;
foreach (UpgradeManager item in items)
{
tick += item.tickValue;
}
// save the value after calculation
PlayerPrefs.SetFloat("MoneyPerSecond", tick);
return tick;
}
从另一个场景中获取它:
// Another Scene
public float GetMoneyPerSec()
{
float tick = PlayerPrefs.GetFloat("MoneyPerSecond");
}
保存PlayerPrefs
中的数据被认为是安全的,因为当PlayerPrefs
将数据写入硬盘时PlayerPref.Save()
调用OnApplicationQuit()
,这是传输数据的最有效方式