2016-11-05 29 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

加载新场景时,单数据中的数据不会被破坏 –