Zenject - это здорово, но я не нашел правильного решения для создания экземпляра игрового объекта.
У меня есть скрипт, который предоставляет различные перехватчики событий для монобихвичных событий.Start, PostStart, Update, FixedUpdate и другие, поэтому контроллеры, не относящиеся к Unity, могут выполняться при определенных событиях.Он основан на интерфейсе, который я назвал "IEventsController"
Мои настройки раньше были бы примерно такими:
private static IEventsController _Events;
public static IEventsController GetEvents()
{
if (_Events == null)
{
var go = new GameObject("EventsController");
_Events = go.AddComponent<EventsController>();
}
return _Events;
}
Я пытаюсь выяснить, есть ли в Zenject встроенныйРешение для этого.Я мог бы использовать фабрику или метод, но фабрика имеет целый дополнительный класс для управления этим, когда Zenject может уже обработать это.Использование метода для генерации этого все еще требует статической ссылки, чтобы проверить, был ли он создан или нет, и это неправильно для этого, чтобы сидеть в сценарии установщика.Кроме того, существует ряд привязок FromComponent, в которых может быть что-то для этого, но я пока ничего не видел.
Пример вызова метода привязки, который я мог бы ожидать:
Container.BindComponent<IEventsController>()
.To<EventsController>()
.ViaNewGameObject("Events Controller");