在Unity中我想以这种方式创建我的UI:
现在的问题是如何在运行时为按钮分配事件处理程序(因为在制作预制件时检查器中已分配的事件处理程序会被删除)。
我正在尝试使用此代码,但它无效:
GameObject uiObj = ResourceUtil.InstantiatePrefab("Prefabs/UI/Main Menu UI", "UI");
uiObj.transform.SetParent(gameObject.transform, false);
Button[] buttons = uiObj.GetComponentsInChildren<Button>();
foreach (Button button in buttons)
{
button.onClick.AddListener(() => OnUIButtonClick(button));
}
private void OnUIButtonClick(Button button)
{
Log.Debug("OnUIButtonClick: " + button);
}
已成功加载并添加了UI预制件,但按钮不会单击它们。有人知道如何成功地做到这一点吗?
答案 0 :(得分:0)
正确完成为Button组件分配侦听器。我已经测试了您的代码,它对我有用。 Weard,也许问题出在其他地方。您是否已将EventSystem添加到场景中?