У тебя есть куча объектов. Чтобы они как-то работали вместе, тебе надо связи между ними прокинуть. Это можно делать по-разному: руками в коде их передавать от одного объекта к другому; в инспекторе руками связать; рефлексией по каким-то правилам находить нужные объекты и связывать, и так далее
В ооп это делается с помощью DI, единственное, что тут оно очень странное.
Ну с DI ты тоже явно указываешь, что к чему привязать, если мы про фреймворки говорим, а не про ручной DI, когда через конструкторы просто всё прокидывается