Пилим игру. Часть 4. Передача параметров между сценами в Unity. Используя реактивщину

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

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

  • @issatay8876
    @issatay8876 5 месяцев назад +9

    В начале не понял, а потом как не понял. Видос мощный, продолжай👍

    • @issatay8876
      @issatay8876 5 месяцев назад +2

      а теперь каак понял

  • @vitaliisorokin7735
    @vitaliisorokin7735 6 месяцев назад +2

    Спасибо за уроки, очень интересно, и идеи отличные. Надеюсь, что в боевых проектах никто не делает такую сильную связанность как в учебных.

  • @whatareulookingat235
    @whatareulookingat235 6 месяцев назад +2

    Спасибо, полезно! Уже жду выхода новой части)

  • @Djegur
    @Djegur 6 месяцев назад +1

    Спасибо большое! Очень круто, продолжай творить!)

  • @sunriseq26
    @sunriseq26 3 месяца назад +2

    Было бы круто видео по UI. Когда допустим на сцене MainMenu несколько экранов, переключение между ними и на экране по несколько кнопок и как правильно подписываться на их нажатие через реактивность. Уроки просто бомбичие, ты красавчик!!!!!

    • @gamedevlavka
      @gamedevlavka  3 месяца назад

      Пасиб)
      До этого тоже дойдем)

  • @Tetatet-u6d
    @Tetatet-u6d 6 месяцев назад +1

    Как всегда лучший!

  • @nightyonetwothree
    @nightyonetwothree Месяц назад

    я вижу, что R3 удобен если к нему привыкнуть и возможно будет еще более удобен в будущем. Но пока (12ый выпуск "пилим игру") это выглядит как лишний слой абстракций. Думаю в маленьких проектах с подобным мог бы справиться какой-нибудь event-hub. Да? Нет?

  • @АртёмЛоктик-ю1е
    @АртёмЛоктик-ю1е Месяц назад

    23:51 Я ваще не понял про реактивность, тип в видосе там выходные формируются там же и тип как я понял надо вместо "Unit.Default" передавать чё-то тип "new SceneExitParams()"? Или я что-то пропустил/не знал? И чё с чем мержить, автор да говорил, но было бы прекрасно если бы ещё и показал)

    • @АртёмЛоктик-ю1е
      @АртёмЛоктик-ю1е Месяц назад

      А всё разобрался, для таких же "умных" как я идея в чём создаётся один сигнал и ему в пару выходные параметры и преобразуется через Select и преобразование, а потом уже Merge и внутри самого мерджа тож Select и преобразование тип "sceneSwitchSignal1.Select(_ => (SceneExitParams)new SomeExitParams("One")).Merge(sceneSwitchSignal2.Select(_ => (SceneExitParams)new SomeMenuExitParams("Two")))" и тогда всё работает и при этом же оба сигнала это обычные Subject

  • @stan123100
    @stan123100 4 месяца назад +1

    24:00 Если мы мерджим сигналы как понять какой из них сработал и для какой сцены передавать входные параметры?

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

      Для этого формируются параметры выхода из сцены. В этих параметрах содержатся и параметры на вход в следующую сцену. Поэтому создаётся несколько сигналов: 1 на выход в сцену 1, другой на выход в сцену 2. Они формируют одну и ту же сигнатуру параметров выхода из сцены, поэтому если их смержить (два сигнала), то при срабатывании любого из них станет понятно, что пришел запрос на смену сцены. Внутри параметров выхода есть параметры входа на следующую сцену, как я и написал вначале. Из этой информации можно понять, какую сцену запускать следующей

  • @nepochat
    @nepochat 6 месяцев назад +1

    Работает

  • @alex_faktor
    @alex_faktor 4 месяца назад +2

    Привет, а сильно ли нужен R3? Почему бы не создать abstract class для всех SceneExitParams в котор будет например имя сцены следующей. А в методе Run перед return вызывать этот метод и передавать в EventHandler нужные параметры. И выходит в GameEntryPoint например обрабатывать их и загружать новую корутину.
    Может я упустил какую-то тонкость из-за которой это не выйдет.

    • @ВладПетров-м7н
      @ВладПетров-м7н 2 месяца назад

      Меня тоже волнует данный вопрос, автор ответь пожалуйста

    • @alex_faktor
      @alex_faktor 2 месяца назад

      @@ВладПетров-м7н я думаю это стандарт индустрии. Например у меня в автобатлере все на EventHadler, а уже в юнити я начал использовать R3. Для себя отметил что есть удобная функции смены свойства через время. Например идет анимации и можно сменить ui когда анимации пройдет и тогда бужет все стнхронно

    • @Sality1000
      @Sality1000 2 месяца назад

      все выйдет, решение задачи передачи параметров между сценой много, зависит от конкретной задачи

  • @СлаваКосолапов-п9ф
    @СлаваКосолапов-п9ф 6 месяцев назад +1

    Спасибо за уроки, планируется ли урок по локализации игры?

  • @MightyBlow
    @MightyBlow 2 месяца назад

    И ещё я похоже, где-то проморгал и кнопка Go Menu не работает, если запускать в редакторе со сцены Gameplay

    • @MightyBlow
      @MightyBlow 2 месяца назад

      Решил добавлением Event System в Canvas префаба UIRoot - кнопки заработали

  • @MoronicSoul
    @MoronicSoul Месяц назад +1

    непонятно что скрывается за Unit.Default

    • @gamedevlavka
      @gamedevlavka  Месяц назад

      Это костыль на уровне языка C#. Реактивные классы-помощники существуют только в Generic виде и обязательно должны что-то возвращать. А если ничего не надо возвращать, то возвращают Unit.default, это просто пустая структура. Например в rxjs, благодаря возможностям языка можно создать Subject subj, и использовать его просто: subj.next()