统一保存foreach?
Unity saving foreach?
我对 Unity 有点陌生,请帮助我。
我怎样才能保存这样的东西?
public float GetMoneyPerSec()
{
float tick = 0;
foreach (UpgradeManager item in items)
{
tick += item.tickValue;
}
return tick;
}
可以使用PlayerPrefs
。假设您有类似 float tick = GetMoneyPerSec()
的内容,然后存储它:
PlayerPrefs.SetFloat("MoneyPerSec", tick);
并通过以下方式检索:
float f = PlayerPrefs.GetFloat("MoneyPerSec");
要'save'文件中的数据,您可以使用xml或JSON序列化为文本文档,并在游戏运行时反序列化。这比播放器首选项更方便,因为您可以轻松地在任何文本编辑器中复制或编辑这些值。
要在场景之间保留数据,只需确保保存数据的 class 是静态的 class(使用单例方法)或设置为 'don' 的 class '加载时销毁'。
Gerard Roche and 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
在OnApplicationQuit()
时调用PlayerPref.Save()
将数据写入硬盘,这是最有效的方式传输数据。
我对 Unity 有点陌生,请帮助我。
我怎样才能保存这样的东西?
public float GetMoneyPerSec()
{
float tick = 0;
foreach (UpgradeManager item in items)
{
tick += item.tickValue;
}
return tick;
}
可以使用PlayerPrefs
。假设您有类似 float tick = GetMoneyPerSec()
的内容,然后存储它:
PlayerPrefs.SetFloat("MoneyPerSec", tick);
并通过以下方式检索:
float f = PlayerPrefs.GetFloat("MoneyPerSec");
要'save'文件中的数据,您可以使用xml或JSON序列化为文本文档,并在游戏运行时反序列化。这比播放器首选项更方便,因为您可以轻松地在任何文本编辑器中复制或编辑这些值。
要在场景之间保留数据,只需确保保存数据的 class 是静态的 class(使用单例方法)或设置为 'don' 的 class '加载时销毁'。
Gerard Roche and 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
在OnApplicationQuit()
时调用PlayerPref.Save()
将数据写入硬盘,这是最有效的方式传输数据。