Unity job system. Как применять потоки в юнити неявно
2020 ж. 12 Жел.
20 546 Рет қаралды
В этом видео мы будем разбирать job систему юнити, как часть DOTS. Job система очень неплохая альтернатива явной многопоточности, когда нужно производить много похожих вычислений.
Blittable типы - docs.microsoft.com/ru-ru/dotn...
Паблик игроделов - vk.com/special3d
Многопоточная запись в файл - • Многопоточность и запи...
Поддержка канала:
Patreon - www.patreon.com/user?u=32502669
В крипте:
BTC - 16WmTb4VTFGYrwEjjnMKNNMMzsMB1rPEqD
ETH - 0x8d35406f8317b846528d0a9ea4a34ce59968dff2
XRP - rLW9gnQo7BQhU6igk5keqYnH3TVrCxGRzm (TAG - 1438215071)
LTC- MNSWdzdVsUMnozSU5HhUPEscfxaUK3Fdck
#unity3d #jobsystem #ecs #dots #ityoutubersru
Ой-ой, на 8-04 картинка съехала(( Если что, то там время жизни такое же, как у главного потока
Спасибо большое за ролик, Максим! Я давно пытался понять смысл NativeArray и разобраться с компонентами DOTS. Очень жду новых уроков по этой теме!
Максим у тебя невероятно полезные видео. Многопоточность чертовски нужная тема!
Это потрясающе, спасибо! Максим у вас на канале, я нашел много ответов для своих вопросов!
Полезно знать про такое. Спасибо. Местами похоже на работу постгри в параллельных транзакциях.
Самый лучший и качественный контент по Unity на русском, спасибо!)
Чет мозг плавиться) Но автор хорошо обьясняет, теперь я уже не такой темный лес) Спасибо)
Классный ролик, благодарю!
Спасибо! Очень полезное видео!)
Спасибо за информацию. Очень полезно для меня было посмотреть (послушать).
Спасибо за видео!
job system очень хорошо помогает когда нужно выполнить большое количество вычисленй паралельно и не тормозить при этом основной поток, кау это уже будет использовано в каждом кокреном случае это вопрос к разработчику , в данном ролике отлично заполнине пробелы которые не описаны в документации по юнити, Макс спасибо
Наконец то нормальный тип, который знает что говорит, красава бро
буду стремится к тому, чтобы когда нибуть пригодилось, спасибо
На вскидку применение - генерация меша
@@gaitavr1992 Добрый день, я как раз делал генерацию меша, но юнити говорит, что индекс вне диапазона IJobParallelFor в буфере чтения/записи. Уже день не могу ничего сделать, переписал код генерации чуть ли не с нуля, не могли бы вы, пожалуйста, сказать из-за чего может быть эта ошибка? Заранее благодарю
Круто! Спасибо!
Это вам не корутины) Отличный материал и классный канал.
Спасибо.
Респект
Даже не знал, что так можно))
огонь!
Ну жоп систему я всю жизнь знал)
Видео не смотрел, но поинтересуюсь - класс Task для этой задачи не подойдёт?
Спасибо, очень полезно, например для меня, т.к. по-английски слабо понимаю, а туторы на англ. сложно даются)
Я бы все же рекомендовал дотянуть уровень хотя бы до intermediate
..мы будем знакомиться с жоп системой
Хах
7:53 в 19 строчке правильней будет Bridge = tempJobContainer; ?
я не любитель подписываться, но на твой канал даже за деньги бы подписался )
Спасибо, приятно)
@@gaitavr1992 я там на почту тебе написал, глянь пожалуйста
Пока что плохо понятно, жду следующего видео ) Тест коллизии как то можно в таком многопотоке сделать? допустим у меня есть пара сотен вершин и надо протестить входят ли они в другие объекты или нет. На вскидку только постепенно проверять их в течении полусекунды например чтобы в одном кадре не было просадок.
Можно считать входит ли точка в обьем обьекта, вполне реализуемо для job системы
@@gaitavr1992 Ждем урок на эту тему, очень ждем.... Спасибо!
В какой версии Юнити ты работаешь. И какой пакет подключаешь через nuget?
Версия 2019.4.2f1. Дополнительных пакетов не требуется, раньше насколько я помню нужно было доустановить JobSystem
@@gaitavr1992 а когда будет вторая часть?
@@gaitavr1992 я так понимаю что в версии 2020 1 8 она должна быть?
Плюс минус неделя
почему бы юнити самой не собирать все процессы в джобы?)
Как же мне больно от "скедиль"
А я всегда думал, что жоп система, это когда зимой в машине подогрев сиденья включается.
Вот это уровень, нужно в стендап
@@gaitavr1992 уровень юмора: жоп система
жоп система (((:
Оригинальный комментарий
Толи я слишком нуб, то ли все слишком внезапно началось и слабо объяснено, но я нехрена не понял.
зачем? если в шарпах существует async await task. Тогда для чего юнити добавило по факту как я понял одно и тоже?
асинхронность != многопоточность
@@exregisterqq Только факториал лучше было бы выполнить через асинхронность, чем через многопоточность. А ну и кстати многопоточность в шарпах тоже есть если для вас это критический важно, класс Thread. Ну и плюс Юнити является не потокобезопасным и общаться с ее API надо только из основного потока. Так что ее Джопы это просто костыли, Юнити вообще полна костылей и недоработок, даже удивительно зачем люди в ней так много времени страдают или это уже дело привычки страдать?
@@exregisterqq Кстати Юнити не только не потокобезопасная, но она еще и однопоточная) попробуйте написать функцию с вечным циклом и вызвать ее, в результате у вас Юнити прекратит отвечать и закрываться, а единственный способ ее закрыть будет банально убить программу в диспетчере задач, короче мусорная программка
Хороший урок, но как минимум - слишком быстро печатается код, не успеваешь сразу осознать написанное, приходится стопать видео каждые 30 сек, это неудобно и отталкивает восприятие. Ну и в целом быстрый темп - не лучший подход для уроков программирования, на мой взгляд - следует подавать такого рода информацию спокойно и размеренно, чтобы слушатель успевал вникать, мы никуда не торопимся :)
Посмотрите заодно следующий ролик, там чуть помедленнее)
@@gaitavr1992 уже глянул, отличные уроки, благодарю)
Скажу по секрету - в настройках любого видео можно поставить как ускорение, так и замедление воспроизведения ;)
Не скедил, а шедул. Такая тема и уж такие ляпы
Не знаю теперь как мне теперь и жить с такими ляпами)
@rupert зачем хамишь? А вот далеко ли твой вариант от моего, по сравнению с автором?
Это два разных произношение британское и американское в вашем случае
В Unity 2021.3.7f1 ругается на лог $"factorial of {bridge[0]} is {bridge[1]}" На то что нельзя читать массив, пока в него кто-то пишет You must call JobHandle.Complete() on the job PowJob, before you can read from the Unity.Collections.NativeArray