如何在 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
}
希望对你有所帮助,祝你好运。
标题说明了一切,我想知道如何从另一个脚本访问变量。我在网上搜索过,但没有找到有效的方法。
首先你需要创建你的变量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
}
希望对你有所帮助,祝你好运。