实例化的predb应该从主脚本中调用一个函数

本文关键字:调用 函数 一个 脚本 predb 实例化 | 更新日期: 2023-09-27 18:19:28

我想要这样的东西。

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");
    }
}

和预制框.cs-这个脚本附在预制框上。

public class PrefabBox : MonoBehaviour {
    public GameObject go;
    void Start () {
        go ();
    }
}

我得到这个错误:

成员"PrefabBox.go"不能用作方法或委托

实例化的predb应该从主脚本中调用一个函数

首先,go对象被声明为GameObject,但随后您为其分配了一个函数,然后像函数一样调用它。

看起来你想要的闭包可以将函数存储到变量中,并以你的方式调用它们

这篇文章涵盖了它:http://answers.unity3d.com/questions/494640/capturing-a-variable-in-a-closure-behaves-differen.html

似乎数据类型需要是Action,但最好阅读它以正确掌握它。

祝你好运。