【问题标题】:How do I use variables in a separate script in Unity3D?如何在 Unity3D 的单独脚本中使用变量?
【发布时间】:2015-10-13 22:57:09
【问题描述】:

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

【问题讨论】:

    标签: c# unity3d unity5


    【解决方案1】:

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

    public GameManager gameManager;
    

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

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

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

    【讨论】:

    • 感谢您帮助我,即使我的帖子得分为 -3。成功了,谢谢!
    【解决方案2】:

    首先,您需要公开您的变量。然后获取 GameObject,获取 Componend 并访问您的变量。

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 2021-03-29
        • 2010-10-20
        • 2018-07-09
        • 2012-05-25
        • 2015-04-19
        • 1970-01-01
        • 1970-01-01
        • 2010-09-07
        相关资源
        最近更新 更多