Архитектура проекта в Unity. Часть 2

Поделиться
HTML-код
  • Опубликовано: 11 янв 2025

Комментарии • 39

  • @YasnaKo
    @YasnaKo 3 года назад +6

    Спасибо большое за серию уроков по архитектуре, учитель вы наш)

  • @chopper4402
    @chopper4402 3 года назад +9

    Это внезапное появление Bank меня подвыбило из колеи. Минут 10 разбирался откуда оно. Вроде бы нашел его в видео "Паттерн Фасад в C# в Unity. Рассказываю на примерах в Unity3d, как пользоваться". А так Уроки вроде топ.

    • @gamedevlavka
      @gamedevlavka  3 года назад +2

      Виноват, каюсь

    • @ВячеславЗагородниченко
      @ВячеславЗагородниченко 3 года назад

      Так же дошел до этого места и сел в калошу. Сделал Bank вроде бы как в видео "Паттерн Фасад в C# в Unity, но теперь Unity при запуске проекта выдает ошибку из-за того что в экземпляре объекта не задана ссылка на объект и я не пойму где разрыв происходит...

    • @84ESM
      @84ESM 11 месяцев назад

      В классе Bank в методе Initialize вероятно перед методом Invoke() пропущен оператор безопасного вызова "?"
      OnBankInitializedEvent?.Invoke();
      public static void Initialize(BankInteractor interactor) {
      bankInteractor = interactor;
      isInitialized = true;
      OnBankInitializedEvent?.Invoke();
      }
      @@ВячеславЗагородниченко

  • @fakeomail
    @fakeomail 3 года назад +3

    Большое спасибо, автор!

  • @ИгорьИванов-р4н3и
    @ИгорьИванов-р4н3и 3 года назад +2

    Спасибо за твои видео, очень помогают.♡♡♡

  • @evilvirraZzz
    @evilvirraZzz 3 года назад +7

    С корутиной в старте нормальный фокус)))
    Я сейчас сижу и думаю, а может скрипт который у меня отвечает за единую точку входа в игру переписать так же на корутину. Получится что то в виде последовательной цепочки операций, которую можем с легкостью менять.
    Автору спасибо за видео!
    Я конечно многое из этого уже знал, но подчеркнул для себя много полезной инфы, по поводу архетиктуры кода ;)

  • @fentan6806
    @fentan6806 Год назад

    5:48 new() ограничивает класс T, тем чтобы он имел публичный конструктор без параметров.

  • @vladimirkalugin-devstudio9721
    @vladimirkalugin-devstudio9721 2 года назад +1

    Спасибо за видео.

  • @mytbccnt
    @mytbccnt 2 года назад +3

    Добавьте видео про паттерн Фасад в плейлист по архитектуре, а то возникает много вопросов откуда взялся класс Bank

  • @ЕвгенийШевчук-я8ю
    @ЕвгенийШевчук-я8ю 3 года назад +6

    Выглядит очень интересно, увидеть бы применение на практике, дабы нубасу вроде меня стало понятнее как все это правильно применять на реальном проекте.

    • @gamedevlavka
      @gamedevlavka  3 года назад +4

      Дойдем и до этого) все станет еще понятнее в следующих видео!

  • @MikhailKolobovGamedevForge
    @MikhailKolobovGamedevForge 2 года назад +1

    Как-то в уроке про архитектуру слишком много ненужного копипаста и статики...
    Хотя казалось бы, делается это все для ровно противоположного результата)

  • @АндрейПрокофьев-е7д
    @АндрейПрокофьев-е7д 3 года назад +1

    зачем нужен OnStart() в Итеракторе и Репозитории?

  • @modman7424
    @modman7424 2 года назад +1

    не совсем понимаю как это работает. Сделал как у тебя в видео и вылезает теперь ошибка на repository.OnCreate() и repository.OnStart() а если добавляю в Repository эти методы, то вообще не инициализируется банк и выбрасывает своё эксцепшн.

  • @rimurutempest5332
    @rimurutempest5332 2 года назад +1

    Прошёл первый урок, далее второй урок 10:39 Ошибка на repository.OnCreate() и repository.OnStart() хотя всё 1 в 1 сделал...

    • @tovkats
      @tovkats 4 месяца назад

      У меня такая же фигня. потому и полез читать коменты

  • @nightyonetwothree
    @nightyonetwothree Год назад

    я бы предпочёл иметь общую базу пар репозиторий+интерактор вместо дубляжа кода и прокидывания туда-сюда.

  • @AKasatikov
    @AKasatikov 2 года назад

    Спасибо за урок ! Может быть приставка Base не удачное -так как базовые классы обычно так называют. Как пример Storage или All в начале имени класса ?

    • @andreimaroz6202
      @andreimaroz6202 10 месяцев назад

      Или вообще RepositoryManager/InteractorManager

  • @tarastaras5595
    @tarastaras5595 3 года назад +2

    Добавьте ссылку на предыдущий урок. Не хватает картинки с классами и их зависимостями, наверно.

    • @gamedevlavka
      @gamedevlavka  3 года назад +2

      Про ссылки на предыдущие уроки спасибо - сделал. Согласен, не хватает картинки. Она есть в гитхабе, но там уже готовая архитектура (ссылка в описании). Я подумаю, как можно показать то, что мы уже сделали.

    • @KitGorn
      @KitGorn 3 года назад +1

      @@gamedevlavka Еще не хватает урока с Фасадом для цельности картины. Вообще это вроде разные вещи и верно что они отделены, но они выполняются в рамках одного проекта и возможно стоит его добавить в плейлист архитектуры. Или лучше ссылку на него указать, коли упоминаешь его в видео. Сейчас его найти не сложно, но в будущем будет больше видео и искать его будет тяжеловато.
      Да и вообще лучше не смешивать разные темы в одном проекте. Создается путаница. Мне так кажется.
      P.S. То, что ты делаешь очень круто. Крайне полезный и качественный материал. Давно искал нечто подобное. Прими мои благодарности)

  • @shyxiaolong
    @shyxiaolong 2 года назад +6

    для тех кто не понял откуда bank ruclips.net/video/QrURtVSlDSM/видео.html

  • @tigerjustice
    @tigerjustice 5 месяцев назад

    А почему мы запускаем
    repositoriesBase.SendOnCreateAllRepositories();
    interactorsBase.SendOnCreateAllInteractors();
    сразу после
    repositoriesBase.CreateAllRepositories();
    interactorsBase.CreateAllIneractors();
    без всяких проверок? Где гарантия что создание Всех репозиториев и интеракторов уже произошло?

  • @great8814
    @great8814 3 года назад

    Привет, очень крутые видео, но жаль что нету ссылки с кодом для каждого видео

  • @ЭдуардКик
    @ЭдуардКик 3 года назад +1

    бля, спасибо

  • @ПавелАртеменко-э8ч
    @ПавелАртеменко-э8ч 3 года назад

    А почему не Zenject вместо Base?

    • @gamedevlavka
      @gamedevlavka  3 года назад +2

      ZenJect - эт прокидывание ссылок при создании объектов, то есть на этапе создания объекта мне нужно иметь ссылку на объект, то есть где-то его взять. В крупных проектах это может стать неудобным, и, как мне кажется, мой подход удобнее.
      Но опять же, это просто два похожих подхода к архитектуре, выбирай какой хочешь)

  • @EvilYarik
    @EvilYarik 3 года назад

    Я сперва не понял почему вместо Dict, ты используешь Map, смысл не меняется, а Dict всё-таки всеми одинаково понятен. Но быстро понял, что InteractorDict можно смело ставить в один ряд с неймингом типа NameString, IsFlagBool, AmountInt, UnitList и т.д. 👍 Вот только смысл не меняется 😂.

    • @vitaliySobakinson
      @vitaliySobakinson 2 года назад +1

      Солидарен. Я везде пишу Dick, другим ребяткам сразу понятно о чем речь и кто писал

  • @uralfansoft
    @uralfansoft 2 года назад

    дайте код репозитория пожалуйста

    • @uralfansoft
      @uralfansoft 2 года назад +2

      namespace Lessons.Architecture
      {
      public abstract class Repository
      {
      public virtual void OnCreate() { }
      public virtual void OnStart() { }
      public abstract void Initialize();
      public abstract void Save();
      }
      }

  • @ilyamedvedev8943
    @ilyamedvedev8943 Год назад +1

    Что-то мне кажется попахивает плохим кодом и дубляжом так как можно было создать вспомогательный класс на репозиторий и интерактор а не копипастить код... Это же ООП тут дубляж не приветсвуют тем более в таких масштабах что целые блоки кода...

  • @anton3757
    @anton3757 3 года назад +10

    Человек делает очень годный контент, но люди все равно будут смотреть попсовых хауди хо, Дударей и прочее дерьмище

    • @alex2d324
      @alex2d324 3 года назад +1

      Ну, вот "Флатинго", скажем - нас покинул, - как жить... как жить... :))))))))))))))))))))))

    • @Какиграть-д6ю
      @Какиграть-д6ю 3 года назад +1

      Там не люди, а школьники скорее всего