从不同的脚本统一访问列表c#

时间:2017-12-30 19:21:33

标签: c# list unity3d

您好我无法找到适合我的答案。我只是试图从另一个脚本访问一个字符串列表但是当我运行我的代码时它说我的列表是空的(当它不是时)。在这里我的代码非常感谢任何帮助。

有很多代码,所以我只想发布试图访问列表的代码:

{{1}}

这只是输出到控制台" 0" 另一个脚本称为Node,列表名为FinalPath。

1 个答案:

答案 0 :(得分:0)

您必须获取其他脚本的正确实例,该脚本是附加到其他游戏对象的组件。

让我们说你的Node脚本中包含正确FinalPath数据的另一个游戏对象" otherGameObjectName"。

 public class enemy : MonoBehaviour {
    public Node nodeScript;
    private Node otherNodeScript; // Add this 

    // Use this for initialization
    void Start () {
        otherNodeScript = GameObject.Find("otherGameObjectName").GetComponent<Node>(); // Here bind your local Node reference to the actual instance
    }

    // Update is called once per frame
    void Update () {

        test();
        Debug.Log(otherNodeScript.FinalPath.Count); // change here
    }

    public void test()
    {
        otherNodeScript.FinalPath.ForEach(x => Debug.Log(x)); // change here

    }
}

这假设在创建敌人对象时已经存在另一个游戏对象。

还有其他方法可以找到您的其他脚本,它们具有更好的性能,但这应该符合您的需求,让您了解对其他对象的引用是如何工作的。

一些参考:

GetComponent

GameObject.Find