Суббота, 23 Ноября 2024, 15:42

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Zenject не инжектит Construct
ArtemSДата: Четверг, 30 Марта 2023, 06:00 | Сообщение # 1
почетный гость
Сейчас нет на сайте
Биндю реализацию интерфейса IInputService в BootstrapInstaller (он же висит на ProjectContex)

Код

public class BootstrapInstaller : MonoInstaller
{
        public IInputService InputService;

       public override void InstallBindings()
        {
            BindInputService();
        }

      private void BindInputService()
        {
            InputService = ChangeInputService();

            Container
                .Bind<IInputService>()
                .FromInstance(InputService)
                .AsSingle();
        }

  private static IInputService ChangeInputService() =>
            Application.isEditor
                ? (IInputService) new StandaloneInputService()
                : new MobileInputService();
}


Потом пытаюсь проинжектить метод в HeroMove этот InputService, но он не заходит в метод

Код

public class HeroMove : MonoBehaviour
{
  private IInputService _inputService;
  [Inject]
  public void Construct(IInputService inputService)
  {
    Debug.Log("MOVE" + inputService);
    _inputService = inputService;
  }

  private void Update()
  {
      //запрос к _inputService  и реализация движения
  }
}


Этот дебаг не выходит Debug.Log("MOVE" + inputService); и вылетает ошибка "NullReferenceException: Object reference not set to an instance of an object"
Что я делаю не так ?


хуяк, хуяк и в продакшн
falcowareДата: Четверг, 30 Марта 2023, 12:36 | Сообщение # 2
старожил
Сейчас нет на сайте
ArtemS, конструктор у тебя с параметром. А вызывается по умолчанию пустой или что?
ArtemSДата: Четверг, 30 Марта 2023, 13:23 | Сообщение # 3
почетный гость
Сейчас нет на сайте
falcoware, он вообще не вызывается. Debug.Log просто не срабатывает

Добавлено (30 Марта 2023, 15:07)
---------------------------------------------
Короче. инъекция не работает в инстанциированном префабе..тема закрыта)


хуяк, хуяк и в продакшн
killing002Дата: Суббота, 03 Июня 2023, 20:27 | Сообщение # 4
почетный гость
Сейчас нет на сайте
Цитата ArtemS ()
Короче. инъекция не работает в инстанциированном префабе..тема закрыта)

Если использовать Gameobject.Instantiate то да. Нужно использовать фабрики внутри zenjecta для этого.


123
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг