2016-10-12 9 views
2

私は少し気が合って私を助けてください。foreachを保存するUnity?

どうすれば保存できますか?

public float GetMoneyPerSec() 
{ 
    float tick = 0; 
    foreach (UpgradeManager item in items) 
    { 
     tick += item.tickValue; 
    } 
    return tick; 
} 
+0

フォローアップhttp://stackoverflow.com/questions/39999971/unity-static-member-upgrademanager-tickvalue-cannot-be-accessed-with-an-instan –

+0

「保存」とはどういう意味ですか?結果を変数に格納することができますか? – Serlite

+0

私はすることができますが、私はそれを戻すことができません。 – Kalip

答えて

2

xmlまたはJSONを生成し、ゲームの実行時に逆シリアル化します。これは、簡単に任意のテキストエディタで値を複製または編集できるので、プレーヤーのプリファレンスよりも便利です。

シーン間でデータを保持するには、データを保持するクラスが静的クラス(シングルトンメソッドを使用する)か、「ロード時に破棄しない」クラスに設定されていることを確認してください。

+0

私は現在、シーン間のデータを維持していますが、私はそのコードを持っています。私は静的にすることができないので、保存できません。 :/私はそれを静的にする方法、または静的な変数などに割り当てる方法が必要なので、私はそれを保存して読み込むことができます。 – Kalip

+0

私は静的であるために変数自体をなぜ必要とするのか分かりません。静的なクラスの変数は、実行時に保持されます。あなたが持っているメソッドは値を返すので、Tickと呼ばれるfloatプロパティを持つSaveDataというクラスがあれば、SaveDataと言うことができます。Tick = GetMoneyPerSec();結果はプロパティに入り、好きな場所で使用することができます。 –

1

PlayerPrefsを使用できます。あなたは、あなたがそれを保存、その後、float tick = GetMoneyPerSec()のようなものを持っているとしましょう:

PlayerPrefs.SetFloat("MoneyPerSec", tick); 

とでそれを取得する:あなたがいずれかを使用してテキストドキュメントにシリアライズすることができ、ファイル内のデータを「保存」に

float f = PlayerPrefs.GetFloat("MoneyPerSec"); 
+0

私は持続性保存を使用していますそれをそこに保存しますか? – Kalip

+0

データの永続性に関するチュートリアルをまとめる[永続性](https://unity3d.com/learn/tutorials/topics/scripting/persistence-saving-and-loading-data) – Sakkas

+0

私が行ったことは、私が私のものを作った方法です。 :/ – Kalip

0

Gerard RocheSakkasからの回答が正しいです。
シーン間でデータを渡すには、必要なのは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()にあるため安全であると考えていますハードディスクにデータを書き込むことができ、データを転送するための最も効率的な方法です。

関連する問題