Тёмный

Всё про корутины в Unity 3D 

Emerald Powder
Подписаться 77 тыс.
Просмотров 99 тыс.
50% 1

Вся основная информация о корутинах в Unity 3D в одном видео. Что такое корутины, что писать после yield return, как пользоваться Start Coroutine и Stop Coroutine, для чего их можно применять, и прочие тонкости связанные с корутинами в Юнити
Patreon канала - / emeraldpowder
Наш Discord - / discord
На этом канале регулярно появляются новые видео, которые позволят тебе научиться создавать игры, или подарят новые идеи и вдохновение, если ты уже умеешь. Подписывайся!
Остались какие-то вопросы, пожелания, или идеи для других видео? Смело пиши в комментарии под видео

Опубликовано:

 

16 май 2020

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 222   
@LowPolyOne
@LowPolyOne 4 года назад
Очень долго боялся корутин. Спал со включённым светом, заглядывал под кровать перед сном, чтобы проверить, не сидит ли там какая-нибудь сопрограмма... а потом вырос и эти чудовища превратились в лучших друзей при разработке! Спасибо автору за качественный материал без воды!
@user-VaccuM
@user-VaccuM 11 месяцев назад
Жиза
@user-sc2is5gu1y
@user-sc2is5gu1y 4 года назад
Корутины наше всё. Для меня инфа не новая, но новичкам будет очень полезно. Спасибо за развивающий контент отличного качества. Его на рутюбе очень мало.
@gaitavr1992
@gaitavr1992 4 года назад
Было бы неплохо еще рассказать что такое IEnumerator, moveNext, current и Reset. Так сказать для полноты картины)
@zerocode2909
@zerocode2909 3 года назад
Это нативный C#. Вкратце IEnumerator- интерфейс перечисления. Current - выдать выбранный элемент списка. moveNext - Переключиться на следующий элемент списка. Reset - сбросить "счётчик" (начать перечисление с начала) P.S Это очень поверхностоное объяснение, лучше найдите статью на эту тему
@gaitavr1992
@gaitavr1992 3 года назад
@@zerocode2909 Я знаю ответ на вопрос, коммент к тому, чтобы зрителю об этом донести
@user-rm2gh2gc5f
@user-rm2gh2gc5f 3 года назад
@@gaitavr1992 Еще можно было бы рассказать, как тоже самое на ассемблере написать, для полного понимания))
@gaitavr1992
@gaitavr1992 3 года назад
@@user-rm2gh2gc5f Потом вот такие, как вы приходят на собеседования и не знают ничего о работе языка и движка. При чем тут ассемблер? Внутренности енумератора должен знать любой разработчик уровня мидл+. Вам лишь бы показывали как игру сделать за час да как пару скриптов накидать
@user-rm2gh2gc5f
@user-rm2gh2gc5f 3 года назад
@@gaitavr1992 Это совершенно разные уровни абстракции. У "таких как вы" сначала надо разобраться в енумераторе, а потом надо разобраться в компиляторе, Си подучить и ассемблер, потом научиться в хешредакторе программы писать, потом компьютеры собирать, а то так же непонятно, что корутина делает, пока не разбоерешся как электроны по проводам ходят. "Такие как вы", у вас вообще воспитание есть, что вы так обращаетесь к людям? "Таких как ВЫ" проводить собеседования вообще допускать нельзя. Какое, блять, ты вообще право имеешь меня с кем-то сравнивать, такиекаквыкать мне?
@insaneone-7220
@insaneone-7220 4 года назад
Полезный материал, думаю многие наконец перестанут бояться корутин)
@YasnaKo
@YasnaKo 2 года назад
Два любимых русскоязычных геймдев блогера в одном месте, мимими
@mukagame5299
@mukagame5299 Год назад
Не думал тебя тут увидеть) Смотрю твои видео, спасибо что даёте такие ценные знания
@KotleKettle
@KotleKettle Год назад
Ничего не понял, автор слишком быстро показывает и тараторит. Не понимаю, откуда столько хвалебных отзывов.
@boost_456
@boost_456 12 дней назад
@@KotleKettle смотрите документацию, там никто не тараторит и можно прочитать все детали
@user-ip7pb6kt1h
@user-ip7pb6kt1h 4 года назад
Спасибо за видос! Когда начинал, никак не мог понять как всю логику запихнуть в апдейт, потом открыл корутины и жизнь стала проще
@Vorono4ka
@Vorono4ka 4 года назад
Вау, благодаря этому видео смог представить как можно улучшить игру, спасибо)
@illoprin
@illoprin 4 года назад
Хоть я и повсеместно использовал корутины в своем коде, но я не знал, что с помощью них можно делать такие сложные последовательности анимаций! Спасибо за интересную инфу!
@thisismaqsa4633
@thisismaqsa4633 3 года назад
Очень много полезной информации в одном коротком видео. Спасибо!
@cbubg
@cbubg 4 года назад
Великолепная подача материала, большое спасибо!
@mykytamarkianov4870
@mykytamarkianov4870 4 года назад
Четкий видос) Еще бы про Async Await-ы такой же)
@akstis4183
@akstis4183 4 года назад
Давно ждал этого урока. Пока никто не объяснил что они такое зачем нужны и т.д. Спасибо
@psy_gamer
@psy_gamer 4 года назад
Твои уроки как всегда великолепны!)
@user-qk6xb1rz4f
@user-qk6xb1rz4f 4 года назад
Спасибо огромное. Благодаря Вам мой код сократится на множество строк.
@user-el2wb4ze3y
@user-el2wb4ze3y 4 года назад
Спасибо, очень полезный материал. Так держать!Всё круто!
@t2g4_channel
@t2g4_channel Год назад
Спасибо за толковое и легкое донесение. Еще со временем когда только изучал Unity как-то корутины как "что-то нихрена непонятное и походу взрывоопасное" и использовал только в случаях крайней необходимости, теперь надо изучить их и попрактиковать! Спасибо!
@user-pz9iu8go6m
@user-pz9iu8go6m 4 года назад
Когда только начинал в юнити, сразу же потребовалось создать спавнер врагов, но к сожалению не смог быстро отыскать нужную (и ПОНЯТНУЮ) инфу по корутинам в Unity. Наткнулся на Invoke и собственно им и пользовался (и придумывал много костылей), а оказывается всё было так просто. Спасибо!
@festi7399
@festi7399 Год назад
Спасибо, то что нужно было в ролике, ты лучший!
@cheburek5116
@cheburek5116 4 года назад
первый видео ролик где я понял меньше 30% материала, наверное куча инфы, автор постарался на славу
@sirj3714
@sirj3714 3 года назад
Просто огонь! Пойду гляну что там еще на канале интересненького :D
@user-vb3py4jv7n
@user-vb3py4jv7n 3 года назад
очень здорово. долго искала такое видео
@Rieltor.-hello
@Rieltor.-hello 2 года назад
Отдельное спасибо за хорошие субтитры
@skf-wm7ft
@skf-wm7ft Год назад
Круто! Очень хорошо объяснил👍
@ruslan_yefimov
@ruslan_yefimov 2 года назад
Спасибо огромное) Из ролика понял, что можно запускать асинхронные задачи из корутин, что расширяет их область применения, очень даже. По-больше бы таких роликов на русском ютубе, и жизнь стала бы легче.
@IamTagir
@IamTagir 3 года назад
Хорошее видео. Отличная идея сделать отдельный класс с простыми корутинами на движение и прочее.
@MrDanko90
@MrDanko90 4 года назад
Спасибо.Очень познавательно!
@artem-astafyev
@artem-astafyev 2 года назад
Отличный материал, спасибо
@user-mi8rd2jd1m
@user-mi8rd2jd1m 4 года назад
Как всегда шикарно )
@learnwithyan
@learnwithyan 5 дней назад
класс, спасибо за обучение
@pavelyurchenkov8644
@pavelyurchenkov8644 4 года назад
Отличный материал!!! С меня лайк+подписка
@samserious5483
@samserious5483 4 года назад
Отличное видео, спасибо!
@mrmelog4320
@mrmelog4320 2 года назад
Оч классный ролик все понятно и интересно:3
@vano2vano
@vano2vano 4 года назад
Отличное видео, спасибо
@andrewdobosh2153
@andrewdobosh2153 4 года назад
Очень крутые ролики у тебя)) Хотелось бы чтоб ты заснял курс для начинающих по unity, сам я андроид разработчик, но по твоим видео начинает симпатизировать и unity))
@EmeraldPowder
@EmeraldPowder 4 года назад
Спасибо) Если есть опыт разработки то думаю курс для начинающих не нужен, там в юнити все довольно интуитивно
@hey2956
@hey2956 4 года назад
Спасибо, хороший туториал
@dmitriygray6616
@dmitriygray6616 4 года назад
Боже как же годно! Господа это лайк
@denisgoodman4492
@denisgoodman4492 3 года назад
Шикарно. Лучшее объяснение из всех виданных как на русском, так и на английском ( :) скорость на пределе восприятия, информация очень плотно временами хочется поставить WaitForSecond (1.f);
@artUSUN
@artUSUN 4 года назад
Оч годный контент, спасибо тебе огромное! Есть в планах выпустить что-нибудь про свет в 3д?)
@Salvadorioo
@Salvadorioo Месяц назад
Что я вынес с урока: - корутина позволит тебе задерживать пчелочку на месте, а потом сделать чтобы она упала - корутина сможет спаунить с пчелки монеты - корутина заканчивается на тина, а ещё там всякие yield return ы есть, которые помогают процессы на время задерживать (на время или до выполнения какого -то условия)
@zarplatatv4556
@zarplatatv4556 4 года назад
Было бы хорошо еще посмотреть урок про много поточность в unity. А про корутины спасибо
@ivanm71
@ivanm71 4 года назад
Ultra-Money, ну, это обычную многопоточность в с# тогда надо смотреть (скорей всего). Таски и await async
@lulook2806
@lulook2806 3 года назад
Насколько я знаю, Unity не поддерживает многопоточность, и при попытке запустить ещё один поток выбрасывает исключение.
@ivanm71
@ivanm71 3 года назад
@@lulook2806 поддерживает.
@hanmayujiro1433
@hanmayujiro1433 3 года назад
@@ivanm71 async/await - механизм асинхронности и к многопоточности не имеет никакого отношения
@ivanm71
@ivanm71 3 года назад
@@hanmayujiro1433 я тред в юнити прекрасно создавал для сокетов
@ivanm71
@ivanm71 4 года назад
Полезно, спасибо
@ve1c0m
@ve1c0m 3 года назад
Ещё можно рассказать про параллельно-последовательное выполнение корутин
@just4funTony
@just4funTony 4 года назад
удивило что ты сказал что корутины не так популярны среди новичков ) Мне казалось это основа основ)
@knightsofthenight4459
@knightsofthenight4459 4 года назад
Какие есть способы приостановки выполнения корутины с последующим возобновлением? К примеру при появлении всплывающее подсказки на экране, объекты движущихся /анимированые с использованием корутин замерли
@cyanmargh
@cyanmargh 4 года назад
Стоило рассказать ещё про составление очередей корутин, вызов корутин по имени, передача параметров в корутины, хотя видео правда хорошее.
@seldemirov
@seldemirov 4 года назад
Помню как то делал корутину содержащую таймер который должен был сбрасываться в 0 в случае если объект покидал триггер. Но он не сбрасывался. В итоге открыл для себя async await. Все возможности корутин есть и даже больше, синтаксис почти тот же + вроде, нет этих проблем с отключением компонента и продолжением выполнения процесса.
@rinatyagafarov5328
@rinatyagafarov5328 4 года назад
thank you for video
@user-wv8vz6kt7z
@user-wv8vz6kt7z 4 года назад
Ray marching в HDRP/URP! И кроме этого слелай просто видео про ray marching. Думаю будет круто.
@MaruskaStarshaya
@MaruskaStarshaya 2 года назад
В чём преимущество использования корутины для MoveForward, например, по сравнению с размещением его в Апдейте?
@unnamer345
@unnamer345 3 года назад
12:30 Вот только корутину нельзя остановить с помощью StopCoroutine если она запустилась прямой ссылкой.
@user-sq4ff4zp9b
@user-sq4ff4zp9b 11 месяцев назад
Я прям рессмеялся когда узнал что можно вот так просто взять и вставить одну(!) строчку между двумя, и обойтись обычной корутиной, вместо того чтобы писать огромную функцию таймер с кучей архитектурных сложностей 😂😂😂
@brickman3171
@brickman3171 4 года назад
Покажи пожалуйста как реализовать FSM на unity.
@user-qh8uw7lf8n
@user-qh8uw7lf8n 3 года назад
Было бы классно объяснить о корутине после коллизии
@toxicknight3079
@toxicknight3079 4 года назад
Вот это класс. Кучу пробелов устранил, благодаря этому видео. Запиши, плиз, в таком же обзорном стиле видео по веб запросам, ради христа. Чтоб вначале вкратце о WWW (на них куча старого кода, уроков, плагинов и тд) и потом о UnityWebRequest'ах. В идеале с парочкой примеров, как заменять в устаревшем коде www на UnityWebRequest. По этой теме на русском инфы почти никакой.
@gamemoments8183
@gamemoments8183 3 года назад
Скажите в чем разница между WaitForSeconds и Invoke ??
@blvcknwh1te
@blvcknwh1te 4 года назад
Очень полезное видео! Скажи пожалуйста, обязательно ли прерывать корутину после её выполнения с помощью break, или она прерывается сама после любого yield return?
@trushkeen
@trushkeen 4 года назад
Если не вызывать ее в Update, то она выполнится один раз до конца, брейком можно завершить заранее
@blvcknwh1te
@blvcknwh1te 4 года назад
@@trushkeen понял, спасибо
@777nayman
@777nayman 2 года назад
А как сделать чтобы корутины не накладывались, допустим есть несколько обьектов при нажатии на которой он передвигается с помощью корутины с точки А в точку Б, у меня получается что пока он передвигается (допустим задал 5 секунд), я могу нажать на другой обьект и он тоже начнет свое движение. А мне нужно чтобы пока первый обьект не дошел до точки Б, другие обьекты не могли двигатся. Пробовал с переменной bool играя с true и false, что то не работает.
@region34cg
@region34cg 3 года назад
Привет, как насчёт видео обзора по probuilder unity.
@arsenbabaev1022
@arsenbabaev1022 3 года назад
Ожидание до нового фрейма помогло разбить генерацию чанков на мелкие задачи и пофиксить просадки фпс при подгрузке чанков (когда все выполнялось за 1 фрейм).
@MatuSS39
@MatuSS39 4 года назад
Отличный видос! А что за редактор кода используется? Уж очень приглянулся
@okely4755
@okely4755 4 года назад
Rider
@MatuSS39
@MatuSS39 4 года назад
JetBrains Rider называется, если вдруг кому тоже стало интересно
@MatuSS39
@MatuSS39 4 года назад
@@okely4755 спасибо
@taode2623
@taode2623 3 года назад
Приветствую друзья, может кто подскажет можно ли в рамках одного скрипта запустить респаун двух объектов, в разных точках и с разной задержкой респауна? если можно то как?
@drseedon
@drseedon 4 года назад
Короютины лучшее что можно придумать. Я с их помощью полностью логику с босса сделал
@lawsonllka271
@lawsonllka271 4 года назад
Dr Seedon корутины ))
@hanmayujiro1433
@hanmayujiro1433 4 года назад
6:29 - можно, плиз, ссылку на картинку?
@vplotnikov
@vplotnikov 3 года назад
@@hanmayujiro1433 не за что, обращайся)
@chizhikovdanilgamedev
@chizhikovdanilgamedev 4 года назад
Братан, не плохо объяснил, но ошибка многих. Корутина регистрируется как ты и сказал в главном потоке Unity, но даже после остановки ее по мере выполнения кода или ручной остановки, ещё живёт в самом потоке, по этому с корутинами нужно быть осторожным. Они на первый взгляд не тяжёлые, но они очень даже дорогие и хоть этого часто не видно, но корутина сама по себе чуть замедляет выполнение кода, ну как я и сказал, она не дешёвая
@lawsonllka271
@lawsonllka271 4 года назад
MBSCore ну это потому что все данные в корутине живут пока она не завершится, в след. кадре.
@MaruskaStarshaya
@MaruskaStarshaya 2 года назад
чел, ты можешь запустить 10 000 корутин и ничего не упадёт. А можешь одним циклом while в Апдейте полностью скрашить приложение - теперь еще раз подумай насколько они "тяжёлые")
@user-tu1nl4ht3t
@user-tu1nl4ht3t 4 года назад
Если дело касается анимаций, уж тем более вещей, типа "сделать ui прозрачным со временем", лучше использовать DoTween. Корутины использую только если очень нужно выполнить методы по цепочке, с задержками, и эти методы не связаны с монобехейвером. Во всех остальных случаях - только DoTween, даже твой простой пример из видео занял строчек 15, через твины это делается одной. Я не плохой человек, мне нравятся твои видео, но зачем писать хорошие анимации не одной строчкой?)
@homexp13
@homexp13 4 года назад
Это скорее просто как пример, лёгкий для понимания.
@user-tu1nl4ht3t
@user-tu1nl4ht3t 4 года назад
@@homexp13 До меня только что дошло, что видео "про корутины", значит видео ок, а мой комментарий ни к селу ни к городу)
@cgytrus
@cgytrus 4 года назад
А можно теперь про многопоточность? :)
@user-in9jv9rt4o
@user-in9jv9rt4o 4 года назад
Давай про многопоточность
@Dziepso
@Dziepso 3 года назад
Спасибо, за видео, но у меня вопрос. Можно ли записать в куратину вот это - Int a = 1, b = 1; a + b; ?
@EmeraldPowder
@EmeraldPowder 3 года назад
Спасибо что смотрите :) Да, всё что можно запихать в обычную функцию будет точно так же выполняться и в корутине
@kamal.x
@kamal.x 4 года назад
Пожалуйста делай урок по Art Engine
@bogotoff
@bogotoff 4 года назад
Было бы полезно рассказать как использовать yield конструкцию для создания своих корутин, т.е. без MonoBehaviour. Как используется такая конструкция в C# например для обхода массива, или хотя бы как именно вызываются корутины в MonoBehaviour
@lawsonllka271
@lawsonllka271 4 года назад
Timur Bogotov зачем?! Это уже лишнее и касается уже программирования в целом, а не юнити.
@EmeraldPowder
@EmeraldPowder 4 года назад
Да, это тема широкая, в этом видео я решил не углубляться как в целом работают IEnumerator'ы и yield'ы. Но если про работу с коллекциями рассказывать то это уже скорее к С# чем к Unity относится, так что не в это видео
@bogotoff
@bogotoff 4 года назад
@@EmeraldPowder Да, всё верно. Наверное большинству это и не нужно
@lkghost7
@lkghost7 4 года назад
надоже, я думал я один ридером пользуюсь )
@Tmerus
@Tmerus 3 года назад
9:05 ну... не сказал бы... иногда вместо ифов проверки более полезна или для убирания сообщения ошибки, если она не критична для тестирования, но мешает отслеживать что-то реально критичное ввиду спама в лог
@AmbassadorOfLogic
@AmbassadorOfLogic 3 года назад
а у меня почему-то StopCoroutine(corName()) - не работает. попробовал создать экземпляр, с трудом корутина запустилась, но все равно метод остановки не работает, спасает только стополлкорутинс :"(
@prosto_chel544
@prosto_chel544 Год назад
а как передовать корутины между скриптами ?
@vladyan01
@vladyan01 Год назад
Корутины и асинхронные методы разные вещи?
@sasha-clown
@sasha-clown 4 года назад
Я правильно понимаю, что это почти тоже самое, что генераторы или async/await в javascript? А то я про эти корутины слышал только из Kotlin
@EmeraldPowder
@EmeraldPowder 4 года назад
Да, в C# тоже есть async/await, и их даже можно использовать в Unity почти точно так же как и корутины. Но я привык к корутинам, они более традиционные в юнити, так что их в основном использую
@Lucio11a
@Lucio11a 2 года назад
Как раз тут вчера делал прыжок через корутины)) по заданию от препода, сделать там всякое без использования Update() Хз че людям они не нравятся :D очень гибкий инструмент...
@tarytale1582
@tarytale1582 2 года назад
Привет! Я новичок, подскажите как сделать задержку после нажатия кнопки на экране (прыжок в данном случае) прежде чем смогу нажать ее повторно. Хочу попробовать таким методом убрать многократные прыжки (я знаю что есть и другие способы убрать многочисленный прыжок, но интересно можно ли этим способом так делать).
@BastionKadabr
@BastionKadabr Год назад
вы про Input GetButton ? надо что бы в каждом кадре не повторялось использовать или down или up , что бы еще меньше на моторику пальцев влияло (если не бить по клавише) лучше Up , те действие будет выполнено не только когда кнопка нажата но и отжата
@dertfin1
@dertfin1 5 месяцев назад
А корутина работает в фоновом режиме, или код после корутины будет работать только, когда корутина закончится?
@Some_kind_of_something
@Some_kind_of_something Месяц назад
Если ещё актуально, в фоновом режиме
@dertfin1
@dertfin1 Месяц назад
Это аналог Thread?
@user-pr9xd3nd2q
@user-pr9xd3nd2q 4 года назад
Объясни пожалуйста, что такое корутина "под капотом" как они связаны между собой и почему остановка корутины осуществляется, в том числе, через "break".
@EmeraldPowder
@EmeraldPowder 4 года назад
Это тоже тема интересная, но уже скорее не про юнити а про C#, да и тянет на отдельное видео
@user-pr9xd3nd2q
@user-pr9xd3nd2q 4 года назад
@@EmeraldPowder был бы рад такому видео, так как впервые на детальное объяснение напоролся лишь спустя 2 года коммерческой разработки)
@wowka7063
@wowka7063 2 года назад
А я тут использовал их для зацикливания или нажатия с паузой при нажатии кнопки UI
@davidkalinovsky1216
@davidkalinovsky1216 4 года назад
Когда выключаешь скрипт на объекте (смена enabled) ты выключаешь только Update(), а остальные методы функционируют
@antonybe2968
@antonybe2968 4 года назад
Не только, но в целом именно так. Галка не отключает компонент, она всего лишь отключает несколько событий MonoBehaviour - docs.unity3d.com/ru/530/ScriptReference/MonoBehaviour.html.
@ilyanaumov4251
@ilyanaumov4251 3 года назад
Получается корутины работают асинхронно?
@greemdim4611
@greemdim4611 3 года назад
Го урок по кулдауну
@etoya413
@etoya413 3 года назад
что делать? выдаёт ошибку - Assets\Scenes\scripts\courutine.cs(19,61): error CS0117: 'Quaternion' does not contain a definition for 'indentity' (я совсем новичок в этом)
@EmeraldPowder
@EmeraldPowder 3 года назад
Правильно Quaternion.identity, советую пользоваться автодополнением в студии, тогда все эти названия не надо запоминать
@etoya413
@etoya413 3 года назад
@@EmeraldPowder спасибо, очень долго не мог понять что не то
@finerace
@finerace 4 года назад
Круто! Бублик, Ананас и баранка с финиками.
@user-zr5dx4kg3x
@user-zr5dx4kg3x 3 года назад
Случайно увидел это видео, в общем для новичков полезно. Но далеко не ВСЁ о корутинах!!! Автор, зря вы про то что try/catch ВЕСЬ ГЕЙМДЕВ не использует, это далеко не так. Про try/catch в корутинах важно было сказать что нельзя делать так: private IEnumerator MyCoroutine() { try { yield return null;
@Grim_J0nes
@Grim_J0nes 3 года назад
Так в чем преимущество этого метода, я не понял, если честно. К примеру, я могу написать всю логику в методе Update с счетчиком времени и всё. Почему такую логику(со счетчиками) стоит выносить именно в корутины? просто для удобства и чтобы не заводить переменные для таймеров?
@EmeraldPowder
@EmeraldPowder 3 года назад
Иногда Update лучше подходит, но когда нужно сделать 5-10 непохожих действий с интервалом в пол секунды - то придётся делать либо 10 переменных таймеров, их инициализировать и следить за порядком. Либо делать enum с 10 значениями, большой switch, и один таймер. Но вообще технически всё что можно сделать корутинами - можно и через обычный апдейт
@Grim_J0nes
@Grim_J0nes 3 года назад
@@EmeraldPowder Понял, спасибо за ответ
@themaither1383
@themaither1383 3 года назад
корутины: существуют люди: Thread.Sleep(TimeSpan.FromSeconds(5));
@antonybe2968
@antonybe2968 4 года назад
Маленькая неточность. StopAllCoroutine останавливает только корутины, которые запущено от имени данного MonoBehaviour. Т.е. если на объекте их два, то корутины второго будут продолжать выполняться.
@EmeraldPowder
@EmeraldPowder 4 года назад
Да, спасибо за поправку, я как-то непонятно про это сказал. Там вот с привязкой то ли к объекту, то ли к компоненту, как раз много всяких неоднозначностей
@antonybe2968
@antonybe2968 4 года назад
В документации к StopAllCoroutines написано так: Note: StopAllCoroutines operates only on the one script it is attached to. Я проверял, можете проверить, так оно и работает ;). Вообще документация у Unity неплохая, часто находишь там то, что по началу пропускаешь по невнимательности. Так что всем советую внимательно ее изучать, и, конечно проводить эксперименты.
@BastionKadabr
@BastionKadabr 2 года назад
у кого проблемы с таймерами и остановкой корутины до начального состояния , посмотрел на англ , самый простой способ создать переменную IEnumerator типа там MyTempCorut и условие if (MyTempCorut != null) { StopCoroutine(MyTempCorut ) } MyTempCorut = типа там MyOriginalCorout(если что то есть); StartCoroutine(MyTempCorut );
@lulook2806
@lulook2806 3 года назад
Основа корутинов - средство генерации анонимных итераторов в C# при помощи инструкции yield. Можно легко написать собственную реализацию корутинов при помощи этого языкового средства. Грустно, что подобный механизм не добавляют в Java - это ведь сильно расширяет возможности языка.
@EmeraldPowder
@EmeraldPowder 3 года назад
Да, yield это вещь мощная. Думал даже сделать видос про реализацию своих корутин, чтобы объяснить как они работают, но решил что это уже слишком будет) В Java вообще ребята консервативные, не пойму как они без перегрузки операторов живут столько
@lulook2806
@lulook2806 3 года назад
@@EmeraldPowder добавить бы в Java перегрузку операторов и неуправляемые типы - был бы шикарный язык. Мне очень нравится, как в нём реализован механизм делегатов. Он универсальнее. От делегатов C# пахнет указателями на функции C++. В целом, в Java вполне можно реализовать что-то похожее на yield инструкции, только конструкция эта будет выглядеть не так элегантно, как в C#.
@Tezla0
@Tezla0 4 года назад
Писать машину состояний - велосипед, т.к yield компилятором преобразуется в готовую машину состояний.
@EmeraldPowder
@EmeraldPowder 4 года назад
Верно, вот примерно такую же машину с enum'ом и переключением состояний друг за другом иногда встречаю в чужом уже, вместо корутин. Я когда-то смотрел через ilspy во что преобразовываются методы с yield, чтобы разобраться в этом. Но в этот видос никак не получилось впихнуть про это все)
@apache_16
@apache_16 2 года назад
А как остановить корутину я так и не понял. Мне надо, чтобв она повторялась только секунд 10
@--.--
@--.-- 4 года назад
Новичкам будет полезно. Но мне кажется, все равно очень сложно объяснено. Вызову IEnumerator при помощи StartCoroutine уделено пару секунд.
@Dippps
@Dippps 4 года назад
Часто использую вместо анимации, чтобы не добавлять аниматор везде где придется.
@kawaikami
@kawaikami 4 года назад
Зачем они нужны когда есть DOTween? (не считая асинхронных загрузок или примитивных веб-запросов)
@tarasklymenko5211
@tarasklymenko5211 4 года назад
а что в DOTWeen есть?
@njkzchannel8609
@njkzchannel8609 4 года назад
Крутой урок. Like. Го урок по многопоточности.
@saurkfamily4465
@saurkfamily4465 4 года назад
Ты мой бог,спасибо
@Vl-os4gz
@Vl-os4gz Год назад
7:44
@unity3d_courseu3dc78
@unity3d_courseu3dc78 2 года назад
Забыл рассказать про использование в корутинах ключевого слова break ;)
Далее
⚡ Всё про события в Unity 3D
21:38
Просмотров 101 тыс.
Rose Burrito #shorts
00:35
Просмотров 4,1 млн
СЫГРАЕМ МИНИАТЮРУ #большоешоу
01:01