当一个变量是附加到另一个游戏对象的另一个脚本时,我如何引用c#unity中的变量



我正在尝试制作一个记分系统,当敌人被屏障摧毁时,它基本上可以工作,但由于敌人多次被克隆,它不起作用,我需要帮助解决这个问题。


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

相关内容

  • 没有找到相关文章

最新更新