我想要这样的东西。
ComponentTest.cs - 此脚本附加到场景中的空游戏对象。
public class ComponentTest : MonoBehaviour {
public GameObject boxPrefab;
void Start () {
GameObject temp = Instantiate(boxPrefab, new Vector3(0,0,0), Quaternion.identity) as GameObject;
temp.GetComponent<PrefabBox> ().go = gameObject.GetComponent<ComponentTest>().Yes();
}
public void Yes(){
print("yes");
}
}
和PrefabBox.cs - 此脚本附加到预制件。
public class PrefabBox : MonoBehaviour {
public GameObject go;
void Start () {
go ();
}
}
我认为这是错误:
成员`PrefabBox.go'不能用作方法或委托
答案 0 :(得分:2)
首先,将go
对象声明为GameObject,然后为其分配一个函数,然后将其称为函数。
看起来您需要Closures,您可以在其中将函数存储到变量中并以您的方式调用它们。
这篇文章涵盖了它:http://answers.unity3d.com/questions/494640/capturing-a-variable-in-a-closure-behaves-differen.html
似乎数据类型需要Action
,但最好阅读它以正确掌握它。