【发布时间】:2020-07-02 23:44:34
【问题描述】:
我有一个从 MonoBehaviour 实例化的可编写脚本的对象。我能够在两者之间来回交流并相应地引发事件。但是在我的场景中有更多的 MonoBehaviours 也需要对可编写脚本的对象做一些其他的来回操作。并且可编写脚本的对象“属于”它被实例化的特定 MonoBehaviour。
所以我的问题是:如何从“MonoBehaviour B”、“MonoBehaviour C”、“MonoBehaviour D”等访问由“MonoBehaviour A”实例化的可脚本化对象?
现在我正在使“Monobehaviour A”成为单例,因此场景中的其他 MonoBehaviours 可以访问它。
【问题讨论】:
-
那么
someGameObject.GetComponent<MonoBehaviourA>()不够吗? -
@Draco18s 很抱歉造成混淆:MonoBehaviours 位于不同的对象中。
-
是的,这就是
someGameObject参考。您可以使用GameObject.Find()等方式获取这些参考资料。 -
如果您提前知道对象会在那里,您可以为要与之通信的对象创建公共字段并使用检查器将它们连接起来。
-
draco 在
MonoBehaviour B中说,您可以获取附加到MonoBehaviourA的游戏对象,然后将脚本作为component获取,然后您可以修改其变量并使用调用中的方法只要有公开的行为,它就会看起来像MonoBehaviourA.scriptableobject.Method()或MonoBehaviourA.scriptableobject.variable
标签: unity3d