如何在 Unity3D 的单独脚本中使用变量?

How do I use variables in a separate script in Unity3D?

标题说明了一切,我想知道如何从另一个脚本访问变量。我在网上搜索过,但没有找到有效的方法。

首先你需要创建你的变量public。然后获取 GameObject,获取 Componend 并访问您的变量。

var variable = GameObject.Find("name").GetComponent<ScriptClass>().yourVariable;

要补充上一个答案,如果您的 class 是纯 c# class 并且不从 monbehaviour 继承,则必须创建 class 的实例。如果你想全局访问某些变量,你应该查看静态变量或实现单例模式

您可以创建 class,实例化 class 的 object 并访问属性。 或者您可以使用 static 变量。 或者甚至更好,假设您有一个 GameManager.cs 脚本附加到一个名为 GameManager 的空对象。并且您想从 LevelManager.cs 脚本访问它的变量。您在 LevelManager.cs

中执行此操作
public GameManager gameManager;

然后你可以将你的 GameManager 空对象拖放到这个 public 字段,每次你想访问一个变量你输入 gamemanager.yourVariableHere 或者,如果您不想拖放: 在启动方法中...

void Start()
{
 gameManager = GameObject.Find("GameManager");
 //this way it finds your object automatically
}

希望对你有所帮助,祝你好运。