Unity: UI.Button Ошибка добавления события OnClick из скрипта - PullRequest
0 голосов
/ 06 мая 2020

В моем приложении у меня есть список 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 внутри сценария редактора для вызова метода «Generate». Кнопки созданы, и я не получаю ошибок, но в кнопки не добавляется событие.

1 Ответ

0 голосов
/ 06 мая 2020

edit: поскольку ваш элемент пользовательского интерфейса создается из префаба, кнопка не подключается к EventSystem

обходной путь: используйте scriptableobject вместо monobeviour, scriptableobjects работают независимо от экземпляров сцены / gameobject

руководство: https://docs.unity3d.com/Manual/class-ScriptableObject.html

https://www.raywenderlich.com/2826197-scriptableobject-tutorial-getting-started

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...