私は少し気が合って私を助けてください。foreachを保存するUnity?
どうすれば保存できますか?
public float GetMoneyPerSec()
{
float tick = 0;
foreach (UpgradeManager item in items)
{
tick += item.tickValue;
}
return tick;
}
私は少し気が合って私を助けてください。foreachを保存するUnity?
どうすれば保存できますか?
public float GetMoneyPerSec()
{
float tick = 0;
foreach (UpgradeManager item in items)
{
tick += item.tickValue;
}
return tick;
}
xmlまたはJSONを生成し、ゲームの実行時に逆シリアル化します。これは、簡単に任意のテキストエディタで値を複製または編集できるので、プレーヤーのプリファレンスよりも便利です。
シーン間でデータを保持するには、データを保持するクラスが静的クラス(シングルトンメソッドを使用する)か、「ロード時に破棄しない」クラスに設定されていることを確認してください。
私は現在、シーン間のデータを維持していますが、私はそのコードを持っています。私は静的にすることができないので、保存できません。 :/私はそれを静的にする方法、または静的な変数などに割り当てる方法が必要なので、私はそれを保存して読み込むことができます。 – Kalip
私は静的であるために変数自体をなぜ必要とするのか分かりません。静的なクラスの変数は、実行時に保持されます。あなたが持っているメソッドは値を返すので、Tickと呼ばれるfloatプロパティを持つSaveDataというクラスがあれば、SaveDataと言うことができます。Tick = GetMoneyPerSec();結果はプロパティに入り、好きな場所で使用することができます。 –
PlayerPrefs
を使用できます。あなたは、あなたがそれを保存、その後、float tick = GetMoneyPerSec()
のようなものを持っているとしましょう:
PlayerPrefs.SetFloat("MoneyPerSec", tick);
とでそれを取得する:あなたがいずれかを使用してテキストドキュメントにシリアライズすることができ、ファイル内のデータを「保存」に
float f = PlayerPrefs.GetFloat("MoneyPerSec");
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;
}
、別のシーンからそれを得る:PlayerPrefs
で
// Another Scene
public float GetMoneyPerSec()
{
float tick = PlayerPrefs.GetFloat("MoneyPerSecond");
}
保存データはPlayerPrefs
呼び出しPlayerPref.Save()
OnApplicationQuit()
にあるため安全であると考えていますハードディスクにデータを書き込むことができ、データを転送するための最も効率的な方法です。
フォローアップhttp://stackoverflow.com/questions/39999971/unity-static-member-upgrademanager-tickvalue-cannot-be-accessed-with-an-instan –
「保存」とはどういう意味ですか?結果を変数に格納することができますか? – Serlite
私はすることができますが、私はそれを戻すことができません。 – Kalip