Unity.UI.Button从脚本中添加OnClick事件失败。UI.Button从脚本中添加OnClick事件失败。

问题描述 投票:0回答:1

在我的应用程序中,我有一个GameObject的列表,我通过代码为列表中的每个GameObject创建一个按钮。问题是,当我通过代码添加和onClick事件时,在按钮onClick列表中没有任何显示,当我点击按钮时没有任何事情发生,而且在这个过程中我没有得到任何错误。下面是我的代码是这样的。

   public GameObject prefab;

   public void Generate()
    {
        for (int i = 0; i < myList.Count; i++)
        {
            GameObject _t = Instantiate(prefab, myUIPanel.transform) as GameObject;

            //Positioning, naming, ...

            _t.GetComponent<Button>().onClick.AddListener(delegate { MyFunction(i); });
        }
    }

public void MyFunction(int index)
{
    //...
}

我在一个编辑器脚本里创建了一个GUILayout.Button来调用 "生成 "方法。按钮被创建,我没有得到任何错误,但没有在按钮中添加任何Event。

unity3d unity-ui
1个回答
0
投票

编辑:因为你的ui元素是从预制件中实例化出来的,按钮没有连接到EventSystem。

解决办法:使用scriptableobject代替monobeviour,scriptableobjects独立于scenegameobject实例工作。

教程。https:/docs.unity3d.comManualclass-ScriptableObject.html。

https:/www.raywenderlich.com2826197-scriptableobject-tutorial-getting-started

© www.soinside.com 2019 - 2024. All rights reserved.