首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SystemEvent Prefab的GameObjects不工作

SystemEvent Prefab的GameObjects不工作
EN

Stack Overflow用户
提问于 2019-01-30 05:31:18
回答 1查看 428关注 0票数 0

我有按钮预置。它是附加到OnClick的EventSystem预置和选择方法称为( doIt )。

此方法(doIt)打印消息并启用名为( Panel)的面板。

代码语言:javascript
复制
public void doIt()
{
    print("Doing !!!");
    helpCanvas.SetActive(true);
}

EventSystem Prefab有脚本,其中有方法( doIt )和gameObject ( Button )。

面板预置是不活动的

我把这些Prefab ( Button,EventSystem和Panel )放到了一些场景(大约17个场景)中,就像这样。

的问题是:当我玩游戏时,点击按钮就不会发生任何事情。

,但在我停止游戏之后,面板就启用了。

注意:只在SystemEvent实例依赖于预制件时才会发生,但是如果我手动从场景中拖出面板

而SystemEvent实例到OnClick,这种情况没有发生

为什么会发生这种事?以及如何解决这个问题?对于所有具有相同功能的按钮,手动重新附加Button OnClick EventSystem并不适合我或任何人。或将Panel实例附加到每个EventSystem实例。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-01-30 05:37:38

预制组件不能引用场景中的对象。这是因为每次联合实例化预置文件时,它如何才能知道引用的对象是否仍然在那里。解决方法是在按钮预置中添加一个脚本组件,然后在预置所需操作的内部创建一个函数。您的按钮预置可以有一个引用--只对它本地的东西有(不依赖于场景,每次实例化预制件时都会在那里)。实例化对象之后,主脚本可以执行buttonInstantiatedPrefabName.GetComponent().evsys = evsys;这样,所有编辑器引用都将存储在主脚本中,主脚本将把它分配给从预制件实例化的其他gameObjects。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54433857

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档