Сообщение от EvilOkta
Созрел новый вопрос.
Есть лист объектов, который заполняется при старте игры.
public static List<GameObject> WorkPoints = new List<GameObject>();
На каждом объекте в сцене висит скрипт TableIsBusy с одним и тем же методом IAmBusy()
Есть событие на которое нужно подписать все эти методы с каждого объекта.
Делегат и событие создано, но никак не могу понять как получить имя метода с объекта в листе, для подписки. Копаю в эту сторону, но дает ошибку - явно не так.
foreach (GameObject WorkPlace in GameLogicInit.WorkPoints) { PlaceIsBusy += WorkPlace.GetComponent<TableIsBusy>().GetComponent("IAmBusyNow"); }
Как все таки правильно такие штуки делать? Интересует, потому что такие списки могут быть сформированы в рантайме и тогда необходимо получать список методов объектов в листе на ходу.
|
Нет юнити под рукой, чтобы проверить, но чисто на сишарпе должно сработать что-то вроде:
PlaceIsBusy += WorkPlace.GetComponent<TableIsBusy>().IAmBusy;
В подписку ты должен сам метод передать, а не вызов метода, соответственно без скобок ().
Ну и IAmBusy это же метод, а не тип, как ты его через GetComponent получать собрался?
И конечно же сигнатура метода IAmBusy должна подходить под делегат в твоём событии, но это, я думаю, ты и так понимаешь.