Было бы круто видео по UI. Когда допустим на сцене MainMenu несколько экранов, переключение между ними и на экране по несколько кнопок и как правильно подписываться на их нажатие через реактивность. Уроки просто бомбичие, ты красавчик!!!!!
я вижу, что R3 удобен если к нему привыкнуть и возможно будет еще более удобен в будущем. Но пока (12ый выпуск "пилим игру") это выглядит как лишний слой абстракций. Думаю в маленьких проектах с подобным мог бы справиться какой-нибудь event-hub. Да? Нет?
23:51 Я ваще не понял про реактивность, тип в видосе там выходные формируются там же и тип как я понял надо вместо "Unit.Default" передавать чё-то тип "new SceneExitParams()"? Или я что-то пропустил/не знал? И чё с чем мержить, автор да говорил, но было бы прекрасно если бы ещё и показал)
А всё разобрался, для таких же "умных" как я идея в чём создаётся один сигнал и ему в пару выходные параметры и преобразуется через Select и преобразование, а потом уже Merge и внутри самого мерджа тож Select и преобразование тип "sceneSwitchSignal1.Select(_ => (SceneExitParams)new SomeExitParams("One")).Merge(sceneSwitchSignal2.Select(_ => (SceneExitParams)new SomeMenuExitParams("Two")))" и тогда всё работает и при этом же оба сигнала это обычные Subject
Для этого формируются параметры выхода из сцены. В этих параметрах содержатся и параметры на вход в следующую сцену. Поэтому создаётся несколько сигналов: 1 на выход в сцену 1, другой на выход в сцену 2. Они формируют одну и ту же сигнатуру параметров выхода из сцены, поэтому если их смержить (два сигнала), то при срабатывании любого из них станет понятно, что пришел запрос на смену сцены. Внутри параметров выхода есть параметры входа на следующую сцену, как я и написал вначале. Из этой информации можно понять, какую сцену запускать следующей
Привет, а сильно ли нужен R3? Почему бы не создать abstract class для всех SceneExitParams в котор будет например имя сцены следующей. А в методе Run перед return вызывать этот метод и передавать в EventHandler нужные параметры. И выходит в GameEntryPoint например обрабатывать их и загружать новую корутину. Может я упустил какую-то тонкость из-за которой это не выйдет.
@@ВладПетров-м7н я думаю это стандарт индустрии. Например у меня в автобатлере все на EventHadler, а уже в юнити я начал использовать R3. Для себя отметил что есть удобная функции смены свойства через время. Например идет анимации и можно сменить ui когда анимации пройдет и тогда бужет все стнхронно
Это костыль на уровне языка C#. Реактивные классы-помощники существуют только в Generic виде и обязательно должны что-то возвращать. А если ничего не надо возвращать, то возвращают Unit.default, это просто пустая структура. Например в rxjs, благодаря возможностям языка можно создать Subject subj, и использовать его просто: subj.next()
В начале не понял, а потом как не понял. Видос мощный, продолжай👍
а теперь каак понял
Спасибо за уроки, очень интересно, и идеи отличные. Надеюсь, что в боевых проектах никто не делает такую сильную связанность как в учебных.
Спасибо, полезно! Уже жду выхода новой части)
Спасибо большое! Очень круто, продолжай творить!)
Было бы круто видео по UI. Когда допустим на сцене MainMenu несколько экранов, переключение между ними и на экране по несколько кнопок и как правильно подписываться на их нажатие через реактивность. Уроки просто бомбичие, ты красавчик!!!!!
Пасиб)
До этого тоже дойдем)
Как всегда лучший!
я вижу, что R3 удобен если к нему привыкнуть и возможно будет еще более удобен в будущем. Но пока (12ый выпуск "пилим игру") это выглядит как лишний слой абстракций. Думаю в маленьких проектах с подобным мог бы справиться какой-нибудь event-hub. Да? Нет?
23:51 Я ваще не понял про реактивность, тип в видосе там выходные формируются там же и тип как я понял надо вместо "Unit.Default" передавать чё-то тип "new SceneExitParams()"? Или я что-то пропустил/не знал? И чё с чем мержить, автор да говорил, но было бы прекрасно если бы ещё и показал)
А всё разобрался, для таких же "умных" как я идея в чём создаётся один сигнал и ему в пару выходные параметры и преобразуется через Select и преобразование, а потом уже Merge и внутри самого мерджа тож Select и преобразование тип "sceneSwitchSignal1.Select(_ => (SceneExitParams)new SomeExitParams("One")).Merge(sceneSwitchSignal2.Select(_ => (SceneExitParams)new SomeMenuExitParams("Two")))" и тогда всё работает и при этом же оба сигнала это обычные Subject
24:00 Если мы мерджим сигналы как понять какой из них сработал и для какой сцены передавать входные параметры?
Для этого формируются параметры выхода из сцены. В этих параметрах содержатся и параметры на вход в следующую сцену. Поэтому создаётся несколько сигналов: 1 на выход в сцену 1, другой на выход в сцену 2. Они формируют одну и ту же сигнатуру параметров выхода из сцены, поэтому если их смержить (два сигнала), то при срабатывании любого из них станет понятно, что пришел запрос на смену сцены. Внутри параметров выхода есть параметры входа на следующую сцену, как я и написал вначале. Из этой информации можно понять, какую сцену запускать следующей
Работает
Привет, а сильно ли нужен R3? Почему бы не создать abstract class для всех SceneExitParams в котор будет например имя сцены следующей. А в методе Run перед return вызывать этот метод и передавать в EventHandler нужные параметры. И выходит в GameEntryPoint например обрабатывать их и загружать новую корутину.
Может я упустил какую-то тонкость из-за которой это не выйдет.
Меня тоже волнует данный вопрос, автор ответь пожалуйста
@@ВладПетров-м7н я думаю это стандарт индустрии. Например у меня в автобатлере все на EventHadler, а уже в юнити я начал использовать R3. Для себя отметил что есть удобная функции смены свойства через время. Например идет анимации и можно сменить ui когда анимации пройдет и тогда бужет все стнхронно
все выйдет, решение задачи передачи параметров между сценой много, зависит от конкретной задачи
Спасибо за уроки, планируется ли урок по локализации игры?
Конечно
И ещё я похоже, где-то проморгал и кнопка Go Menu не работает, если запускать в редакторе со сцены Gameplay
Решил добавлением Event System в Canvas префаба UIRoot - кнопки заработали
непонятно что скрывается за Unit.Default
Это костыль на уровне языка C#. Реактивные классы-помощники существуют только в Generic виде и обязательно должны что-то возвращать. А если ничего не надо возвращать, то возвращают Unit.default, это просто пустая структура. Например в rxjs, благодаря возможностям языка можно создать Subject subj, и использовать его просто: subj.next()