从另一个脚本访问脚本不起作用

时间:2014-08-03 12:27:13

标签: c# unity3d

我正在尝试使用bool参数访问一个函数,从一个脚本到另一个脚本,并且无法使其工作。我一直在四处寻找,试图理解我做错了什么。

这是我打电话的脚本:

public class MainScript : MonoBehaviour {

    public void ManageBoxCollider2D (bool shouldColliderBeEnabled) {
        print (">>>>>>>>>>>>>>>>ManageBoxCollider2D: " + shouldColliderBeEnabled);
    }

}

我试图从这个脚本中调用它:

public class Sidebar1_Script : MainScript {
    public MainScript mainScript;

    void Start () {
         mainScript.ManageBoxCollider2D (true);
    }
}

脚本中还有很多其他东西,但这对这个问题很重要

在" Sidebar1_Script"我正在尝试访问" ManageBoxCollider2D" in" MainScript"但它不起作用。

我收到以下消息:

Object reference not set to an instance of an object

......我明白了,但无法弄清楚我做错了什么。

我很感激帮助如何做到这一点。

由于

1 个答案:

答案 0 :(得分:1)

这是因为团结并不知道是什么剧本。如果你在检查员中看到你发现公共变量MainScript仍然是空的,你也不能在检查员中分配脚本(我不知道为什么,当你把它拖到那里它不适合)。

而是像这样改变你的Sidebar1_Script

public GameObject obj;

void Start () {
    MainScript main = obj.gameObject.GetComponent<MainScript>();
    main.ManageBoxCollider2D(true);
}

然后在检查器中分配obj的游戏对象(将游戏对象拖到公共变量中)。