2016-11-05 27 views
0

我是新來的編碼,我想問一下如果有人可以幫助我,我開始了一個項目,並希望省下我的錢,我有更多場景,它的2D項目。Unity3D - 在更多場景(2D項目)之間存儲數據(例如int)

我有類似:

public class Click : MonoBehaviour 
{ 
    public UnityEngine.UI.Text cp; 
    public UnityEngine.UI.Text goldDisplay; 
    public float gold = 0.00f; 
    public int goldperclick = 1; 

    void Update() 
    { 
     goldDisplay.text = " Fruits: " + gold; 
     cp.text = " CP: " + goldperclick; 
    } 

    public void Clicked() 
    { 
     gold += goldperclick; 
    } 
} 

當我現在場景切換到另一個,並取回那一幕,所有的錢丟了,我想知道是否有人能說什麼我可以試着解決這個問題。

謝謝。

回答

1

你可以簡單地調用遊戲對象的DontDestroyOnLoad()方法描述here。爲避免多重實例化,請注意您在哪個場景中執行該遊戲對象的初始實例化。

0

嘗試singletone模式:

閱讀:https://msdn.microsoft.com/en-us/library/ff650316.aspx

例子:

using System; 

public class Singleton 
{ 
    private static Singleton instance; 

    private Singleton() {} 

    public static Singleton Instance 
    { 
     get 
     { 
     if (instance == null) 
     { 
      instance = new Singleton(); 
     } 
     return instance; 
     } 
    } 

    private int money; //Saved data 

    public int Money //Access to field 
    { 
     get { return money; } 
     set { money = value; } 
    } 
} 
+0

當然,但卻忽略了DontDestroyOnLoad。當您想要在場景之間切換時,該點很重要。因此,該教程的鏈接與示例代碼和視頻一起提供。 – MiningSam

+0

加載新場景時,單數據中的數據不會被破壞 –