Четыре вида задержек в Unity - ч.1 Invoke, Coroutine

  Рет қаралды 10,477

Unity Оk

Unity Оk

Күн бұрын

В этом уроке я расскажу вам о четырех видах задержек в юнити, а именно таких как: метод Invoke, Карутины, async/await и UniRx Timer. Это видео первая часть урока, речь в которой пойдет о методе Invoke и Корутинах. Я научу вас как запускать задержки, и самое главное как их потом останавливать, если вдруг по каким-то причинам они нам больше не нужны.

Пікірлер: 48
@shardjovanna6701
@shardjovanna6701 4 ай бұрын
Спасибо вам огромное, пусть и не с первого раза, но благодаря вам я разобрался как работать с задержкой или карутиной, добра вам!
@sagrgywejhxcvx
@sagrgywejhxcvx Жыл бұрын
нигде до этого про инвоук не слышал, спасибо!
@ПавелЮ-р5э
@ПавелЮ-р5э 2 жыл бұрын
Всё по делу , лучшее обьяснение корутин , молодец )
@unityk555
@unityk555 2 жыл бұрын
Спасибо, стараюсь)
@alex.artechtattoo
@alex.artechtattoo 2 жыл бұрын
Повторение - мать учения! Классный контент! Вчера наткнулся на канал и не подписаться не смог. Премного благодарен за труд!
@unityk555
@unityk555 2 жыл бұрын
Спасибо за подписку. Рад что контент вам понравился, впереди еще много интересного.
@masikano8976
@masikano8976 5 ай бұрын
Копеес, сколько читал про корутины, когда сталкивался с необходимостью задержки, так и не мог до конца понять, как это делается. Спасибо) P.S. возможно кто то запустил корутину для моего развития :)
@_T-800_
@_T-800_ 2 жыл бұрын
Автор видоса красавчик, лаконично, грамотно без спама 👍👍👍👍👍👍ЛАЙК🥇🏆♥
@evgenbaranenko2582
@evgenbaranenko2582 Жыл бұрын
Спасибо вам большое за ваши уроки!!
@tigranavagyan1587
@tigranavagyan1587 Жыл бұрын
Большое, человеческое спасибо!!!
@elsee8865
@elsee8865 2 жыл бұрын
Спасибо за видео! Я бы ещё добавил, что лучше использовать name of() вместо стрингового названия метода:)
@andrey_aka_skif
@andrey_aka_skif 2 жыл бұрын
Либо использовать корутины вместо инвок
@unityk555
@unityk555 2 жыл бұрын
Да вы правы, если есть возможность захешировать стрингу, то лучше ее хешировать.
@unityk555
@unityk555 2 жыл бұрын
@@andrey_aka_skif видео не про то что лучше, а про разные способы задержек. Я просто показываю какие виды бывают и Invoke тоже имеет место быть.
@andrey_aka_skif
@andrey_aka_skif 2 жыл бұрын
@@unityk555 комментарий не про то, что корутины лучше инвоков. Комментарий про то, что в корутинах есть перегрузка, которая позволяет непосредственно сослаться на вызываемый метод (вместо обращения по имени). И если это критично, то корутина, имхо, предпочтительней.
@unityk555
@unityk555 2 жыл бұрын
Тогда да) я лично уже давно не использую ни инвоки и не карутины, програмирую используя асинхронные методы и uniRx задержки, о них речь пойдет во втором уроке в среду.
@igorgavriloff3350
@igorgavriloff3350 9 ай бұрын
Второй день бошку ломаю, почему не могу остановить корутину. Оказалось надо в переменную её поместить, спасибо большое!!
@unityk555
@unityk555 9 ай бұрын
Да не за что, остановка корутины штука не очевидная. Сам в свое время сидел с ней.
@Fufik2000
@Fufik2000 5 ай бұрын
А зачем вообще останавливать то? Она взяла, выполнила свой код и всё, закончилась, нет? Разве не так?
@yogoman4810
@yogoman4810 Жыл бұрын
Эх досмотрел до второ минуты. Для моей задачи инвока хватило😂
@tigranavagyan5922
@tigranavagyan5922 Жыл бұрын
Спасибо за видео!!!
@sergeiponomarev8316
@sergeiponomarev8316 Жыл бұрын
спасибо за видео!
@timurmingulov9921
@timurmingulov9921 2 жыл бұрын
Отличное видео, правда, первая и самая простая задержка - это наверное реализация таймера. Ну типа заводим переменную, в апдейте плюсуем Time.deltaTime. Также имеем список ордеров, кт можно добавлять таймеру через интерфейс. В ордере Action и время через которое он должен быть запущен. Через каждый Update таймер обновляет себя и смотрит истекшие ордеры. Если какой-то ордер истёк, закрываем его, убираем из списка и вызываем action.Invoke. Вот тебе пятый способ сделать задержку =)
@unityk555
@unityk555 2 жыл бұрын
Ну способ с таймером не всегда удобен, зачем делать свой таймер если его можно запустить с Invoke сразу? Но иногда я использую и описанный выше подход. А вообще способов сделать задержку хватает, начиная с простого Invoke и заканчивая многопоточностью, так что берите те что вам по душе))
@timurmingulov9921
@timurmingulov9921 2 жыл бұрын
​@@unityk555 Да он вообще не удобен, просто в некоторых системах иного способа из коробки нет. Например, если попытаться совокупить Unity и Arduino. Кстати, тема авейт-асисек не раскрыта. Предлагаю взять какую-нибудь задачку, кт гарантировано положит поток, например, поиск простых чисел в диапазоне и показать, как её решить, не вешая Unity Thread. Так же, думаю, будет интересно как возвращать пакеты из UDP-сокета в основной поток.
@unityk555
@unityk555 2 жыл бұрын
Ну по async/await позже сниму отдельный урок. По всяконо рода потокам тоже можно будет записать. Сейча уже план сформирован. Осталось только найти свободное время для записи))
@elsee8865
@elsee8865 2 жыл бұрын
Я ещё вспомнил про thread. Sleep(). Загуглил "будет ли это останавливать всю игру/приложение"? Оказалось да, лучше этим не пользоваться. Так как юнити билд работает в одном потоке. Если вы конечно не создаёт е свои потоки.
@andrey_aka_skif
@andrey_aka_skif 2 жыл бұрын
Под предыдущим видео писал комментарий схожего содержания. Немного поэкспериментировал и сделал отсрочку с помощью класса System.Timers.Timer. В нем событие срабатывания вызывается в отдельном потоке. А я пытался удалить объект со сцены. Из простого - объект не удалился. Из внезапного - таймер продолжил срабатывать даже после остановки игры. Ну, нажал стоп, перешёл в редактор, а метод всё вызывается и вызывается. И как его остановить, хз )))
@unityk555
@unityk555 2 жыл бұрын
Метод о котором вы написали это уже многопоточность, я намеренно не касаюсь этой темы в этом ролике. Это уже не просто задержки, а манипуляции потоками. Но во второй части урока будет асинхронность, например.
@unityk555
@unityk555 2 жыл бұрын
@@andrey_aka_skif интересно)))
@darkscorp4415
@darkscorp4415 3 ай бұрын
Пятая это задержка в развитии, если долго пытаться разобраться в коде новичку.
@unityk555
@unityk555 3 ай бұрын
@@darkscorp4415 )) все с опытом
@Pravda-bw3tj
@Pravda-bw3tj 2 жыл бұрын
5 задержка - это задержка в развитии, ведь большинство пишущих людей на юнити с ней сталкиваются!
@adzhevzhik
@adzhevzhik Жыл бұрын
6 задержка - это задержка в развитии, ведь большинство людей на росии с ней сталкиваются
@Pravda-bw3tj
@Pravda-bw3tj Жыл бұрын
@@adzhevzhik хохол момент)
@TOSHIKGAME
@TOSHIKGAME Жыл бұрын
Как получается IEnumerator сделать private если это общедоступный метод,даже редактор подсвечивает "не допустимо для использования",а куда ни глянь,у них у всех private?
@naredsh6675
@naredsh6675 Жыл бұрын
IEnumerator это не метод в данном случае. Это тип возращаемого значения.
@valeryrubantsev7837
@valeryrubantsev7837 Жыл бұрын
Больше всего корутины в морковке.
@unityk555
@unityk555 Жыл бұрын
))))
@Progerman342
@Progerman342 Жыл бұрын
Спасибо Ато разобраться немогу
@ДобрыйЧел-г4у
@ДобрыйЧел-г4у 2 жыл бұрын
E осень помогло для ии
@SMOKI-ex5uu
@SMOKI-ex5uu Жыл бұрын
Timer
@sleepingfoxstudio1301
@sleepingfoxstudio1301 2 жыл бұрын
Настолько знаю - Invoke юзать это плохой практикой считается
@unityk555
@unityk555 2 жыл бұрын
Тоже где-то это слышал, но не углублялся, так как никогда его не использовал))
@sleepingfoxstudio1301
@sleepingfoxstudio1301 2 жыл бұрын
@@unityk555 Invoke создает неотслеживаемую связь и часто рушит архитектуру
Mia Boyka х Карен Акопян | ЧТО БЫЛО ДАЛЬШЕ?
1:21:14
Что было дальше?
Рет қаралды 11 МЛН
PIZZA or CHICKEN // Left or Right Challenge
00:18
Hungry FAM
Рет қаралды 14 МЛН
DOTween Секвенции Ч.2
15:50
Unity Оk
Рет қаралды 3,3 М.
Что такое API?
6:05
Merion Academy
Рет қаралды 356 М.
Теоретическое собеседование в Unity
35:32
Мое портфолио #2 - Ролики
11:22
Unity Оk
Рет қаралды 1,8 М.
Введение в addressables
28:24
Unity Оk
Рет қаралды 6 М.
DOTween введение в технологию Ч.1
17:33
Unity Оk
Рет қаралды 8 М.