Unity3D -在更多场景(2D项目)之间存储数据(例如int)

本文关键字:之间 存储 数据 int 例如 项目 2D Unity3D | 更新日期: 2023-09-27 18:16:31

我是新的编码,我想问是否有人可以帮助我,我开始了一个项目,想要节省我的钱,我有更多的场景之间,这是一个2D项目。

我有这样的东西:

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;
    }
}

当我现在切换到另一个场景,回到那个场景时,所有的钱都丢了,我想知道是否有人能告诉我如何解决这个问题。

谢谢。

Unity3D -在更多场景(2D项目)之间存储数据(例如int)

你可以像这里描述的那样简单地调用GameObject的DontDestroyOnLoad()方法。为了避免多次实例化,请注意在哪个场景中对游戏对象进行初始实例化。

这是教你如何编写游戏管理器的标准教程:

https://unity3d.com/learn/tutorials/projects/2d-roguelike-tutorial/writing-game-manager

尝试单模式:

阅读: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; }
   }
}