我正在尝试制作一个记分系统,当敌人被屏障摧毁时,它基本上可以工作,但由于敌人多次被克隆,它不起作用,我需要帮助解决这个问题。
if (sphere.IsDestroyed() && player.IsDestroyed() == false)
{
int result = (score + scoreaddconfig);
scorenumber.text = result.ToString();
}
上面的文字是分数系统,下面的文字是我试图参考的变量
var position = new Vector3(Random.Range(-7.08f,-2.16f), 2.87f, 29.46f);
我希望找到一种方法,可以引用c#中的变量,并将其放入另一个脚本中
最简单的&最快的方法是使用singleton模式创建一个类来存储游戏状态信息,比如score。示例:
public sealed class DataManager
{
private static DataManager instance = null;
private DataManager()
{
}
public static DataManager Instance
{
get
{
if (instance == null)
{
instance = new DataManager();
}
return instance;
}
}
}
然后,您可以从项目中的任何位置使用DataManager.Instance
访问此单例实例。例如,如果您在这个DataManager类中添加一个分数变量,您可以这样访问它:DataManager.Instance.score