UniRx и Job system, дайте советов..
|
|
killing002 | Дата: Четверг, 11 Марта 2021, 15:05 | Сообщение # 1 |
почетный гость
Сейчас нет на сайте
| Всех приветствую! При разработке проекта возникла ситуация.. Нужно, чтобы в кадре было много нпс, например возьмем толпы зомби. Очевидно, что все это будет тормозить, и я сразу подумал о многопоточности. Много статей перечитал, часто видел такие фразы как: "юнити не потокобезопасный", "все игры на юнити тормозят" и все в этом духе. Но тем не менее я наткнулся на такие термины как UniRx и Job system. Как я понял, система заданий все же позволяет разделить код на потоки, не весь код конечно, но все же. Читая о реактивном программировании, а именно о UniRx, я так понял, что оно тоже предполагает деление на потоки. И я теряюсь в том аспекте, - что же использовать, на что способен UniRx и тд. Документацию по UniRx пока не читал, хотелось бы узнать с начало об общих положениях. Заранее спасибо за ответ.
123
|
|
| |
drcrack | Дата: Четверг, 11 Марта 2021, 17:51 | Сообщение # 2 |
старожил
Сейчас нет на сайте
| Job System нужен когда узкое место это именно твои скрипты Нет смысла делать многопоточность просто ради многопоточности, когда ты еще не знаешь, что именно будет тормозить игру
|
|
| |
killing002 | Дата: Суббота, 13 Марта 2021, 11:43 | Сообщение # 3 |
почетный гость
Сейчас нет на сайте
| Цитата drcrack ( ) Нет смысла делать многопоточность просто ради многопоточности, когда ты еще не знаешь, что именно будет тормозить игру Это многопоточность ради оптимизации. То, что будет тормозить очевидно - > всякие рейкасты и проверки и логика нпс.
Вот, что по поводу JobSystem.. Я тут некоторые тесты проводил над игрой, игрался с профайлером и т.д. И заметил, что без моего собственного вмешательства , а именно добавления Job'ов и тд. Некоторые процессы сами распараллеливаются.
Тут можно наблюдать во вкладке Job, что уже существуют worker'ы. То есть Job System уже потихоньку внедряется в Unity. Как видно из скрина или нет, но там распараллеливаются процессы аниматоров, канвасов , в общем не очень понятно ..
Начитался документации по UniRx, в общем нужен для асинхронных действий какого либо характера. Как понял, на треды тоже можно распределить определенный код, но все это окутано пока тайной для меня.. И что интересно UniRx и Job System друг с другом не совместимы.
123
Сообщение отредактировал killing002 - Суббота, 13 Марта 2021, 11:54 |
|
| |