我正在尝试使用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
......我明白了,但无法弄清楚我做错了什么。
我很感激帮助如何做到这一点。
由于
答案 0 :(得分:1)
这是因为团结并不知道是什么剧本。如果你在检查员中看到你发现公共变量MainScript
仍然是空的,你也不能在检查员中分配脚本(我不知道为什么,当你把它拖到那里它不适合)。
而是像这样改变你的Sidebar1_Script
:
public GameObject obj;
void Start () {
MainScript main = obj.gameObject.GetComponent<MainScript>();
main.ManageBoxCollider2D(true);
}
然后在检查器中分配obj
的游戏对象(将游戏对象拖到公共变量中)。