How to do pause in unity3D

  Рет қаралды 18,488

Максим Крюков

Максим Крюков

Күн бұрын

Пікірлер: 110
@ram-1919
@ram-1919 Жыл бұрын
Было тяжело, но я наконец-то прошёл курс до данного момента. Курс очень качественный и немало улучшил мои навыки как программиста. Я очень благодарен Вам за Вашу работу, в частности, за этот туториал. Удачи Вам во всём! 😄😃😃
@maksimsazanovich6087
@maksimsazanovich6087 Жыл бұрын
что за курс?
@Milash001
@Milash001 2 жыл бұрын
Лайк и коммент для продвижения отличного канала!😊
@ivan-gorodovoy
@ivan-gorodovoy 2 жыл бұрын
Великолепное исполнение, спасибо огромное!
@vladisslavss
@vladisslavss 2 жыл бұрын
Отдельный лайк за музыку из SC2🔥
@klarshi
@klarshi 2 жыл бұрын
А я такой сижу и думаю сначала - "Сессия ли запущена, или вкладка с Alex007"...
@neverworld8815
@neverworld8815 2 жыл бұрын
@@klarshi тоже сразу вспомнил Alexa )
@albertshor
@albertshor 2 жыл бұрын
Обидно, что у такого рукастого блогера, такая небольшая аудитория
@MassimoRough
@MassimoRough 2 жыл бұрын
Делись этим видео в соц сетях, должно помочь.
@ФаридЮсубов-с8ф
@ФаридЮсубов-с8ф 2 жыл бұрын
Казалось бы, смешно, всего лишь паузу сделать, а ведь хорошую реализацию очень хочется увидеть)
@andrey_aka_skif
@andrey_aka_skif 2 жыл бұрын
На канале есть видео, как сделать счётчик fps!
@andreyas44
@andreyas44 2 жыл бұрын
Сразу лайк за тему)
@evgeniy4472
@evgeniy4472 2 жыл бұрын
Насколько правильным является зависимость низкоуровневого обьекта(к примеру игрок) от более высокоуровневого обьекта(PauseManager)?
@andrewalexart
@andrewalexart Жыл бұрын
Подскажите, а здесь используется какой-нибудь паттерн? Или хотя бы часть из какого либо паттерна проектирования.
@quddi
@quddi 2 жыл бұрын
Учитывая, что вы используете постфикс "-Manager", то хотелось бы услышать ваше мнение о рекомендации как раз таки о его НЕ использовании. Спасибо
@anatoliy9696
@anatoliy9696 Жыл бұрын
Хотел написать SlowMotionService, но мне стало страшно. Как замедлять падение rigidbody, как замедлять эффекты со временем жизни и т.д?
@seamionilyin1644
@seamionilyin1644 2 жыл бұрын
Отличное видео. Спасибо
@EnotoButerbrodo
@EnotoButerbrodo 2 жыл бұрын
​Очень важное видео. Важная часть игры, общедоступные реализации которой всегда, лично у меня, вызывают чувство плохого кода, костыльности и неудобства. Хотелось бы увидеть правильную реализацию
@gaitavr1992
@gaitavr1992 2 жыл бұрын
Нет правильной реализации) я покажу свое видение
@EnotoButerbrodo
@EnotoButerbrodo 2 жыл бұрын
@@gaitavr1992 безусловно. Но в данном случае можно будет увидеть реализацию от заведомо опытного программиста
@alexander_farkas
@alexander_farkas 2 жыл бұрын
@@gaitavr1992 Кстати о "правильной" реализации - в Dota 2 во время паузы иногда может сработать тик какого-либо действия (атака, яд), и персонаж умрет во время паузы. Хотя, казалось бы, движок писали матерые программисты, и source 2 в принципе достаточно современный.
@gaitavr1992
@gaitavr1992 2 жыл бұрын
Код асинхронный, может что то пролезть, еще и мультиплеер все усугубляет. Сообщения о паузе и яде могут прийти в разных сообщениях сервера
@EnotoButerbrodo
@EnotoButerbrodo 2 жыл бұрын
@@alexander_farkas Весьма редкий баг, но помимо него видно например, что анимация портрета застывает, кроме движения глаз.
@igorboroda1626
@igorboroda1626 2 жыл бұрын
Думаю это будет что-то вроде интерфейса IPausable + менеджер паузы, который ищет объекты на сцене по интерфейсу или же ссылка на менеджер паузы будет инжектится в объекты через zenject. Впрочем может это быть и классический синглтон. Также вполне можем увидеть расширенную версию уже с локальным контролем времени для каждого отдельного объекта.
@gaitavr1992
@gaitavr1992 2 жыл бұрын
Все верно
@alexander_farkas
@alexander_farkas 2 жыл бұрын
Хотел написать про абстрактный класс, который в onEnable сам подписывает инстанс на ивент, а onPauseToggled отдает на имплементацию. В нем бы и isPaused объявил. Но узнал, что в C# нет аналога mustCallSuper (как в дарте, на котором пишу 99% времени).
@Makes074
@Makes074 2 жыл бұрын
Коллекция IPausable может быть получена из контейнера DI в менеджере паузы, и останется только реализовать этот интерфейс где нужна пауза
@andrey_aka_skif
@andrey_aka_skif 2 жыл бұрын
Музыка местами очень отвлекает. Кстати, как называется трек? Хочу скачать XD
@gaitavr1992
@gaitavr1992 2 жыл бұрын
Это из старкрафта
@alexspeleers
@alexspeleers 2 жыл бұрын
ти живий там?
@gaitavr1992
@gaitavr1992 2 жыл бұрын
Так
@МихаилЩёголев-щ9я
@МихаилЩёголев-щ9я Жыл бұрын
здравствуйте, очень хотелось бы увидеть гайд введение написания scriptable renderer feature. я 3д художник и дальше хотелось бы прикоснуться к техарту в юнити, но я столкнулся с проблемой что найти актуальную и понятную информацию по этому направлению довольно трудно
@КириллЕвстратов-е2л
@КириллЕвстратов-е2л 2 жыл бұрын
По шейдерам. Будет ли видео о том, как переписать шейдер из 3D проекта, чтобы работал в URP ? Я постоянно с такой проблемой сталкиваюсь, а как сделать , материала нету ((
@gaitavr1992
@gaitavr1992 2 жыл бұрын
Если умеете колом писать шейдера, то в графе нет проблем вообще
@ЄвгенБезкровний-р3п
@ЄвгенБезкровний-р3п 2 жыл бұрын
запиши видео про звук, и как его сохранять в Unity, реально ли перевести звук в строку и обратно?
@Raccoon0710
@Raccoon0710 2 жыл бұрын
Обожаю контент на этом канале, но данная реализация возможно нужна, только для каких нибудь AAA игр. Данную проблему с Тавер Дефендером можно решить за минуту. Я просто ставлю прозрачную картину растянутый на весь UI, ловлю на нем нажатия и выставляю тайм скейл в 0. Как бы красивое не было бы решение это, но оно реально не нужно большинству игр. 😊
@Raccoon0710
@Raccoon0710 2 жыл бұрын
И еще, на нажатие на прозрачную картинку можно выводить надпись.. 🙂
@nightyonetwothree
@nightyonetwothree Жыл бұрын
почему бы просто игровую логику не оставить в FixedUpdate'ах? Которые не будут вызываться при timeScale == 0? Минимум головной боли без костылей. В редких исключениях когда функционал находится в обычных Update и LateUpdate можно сделать проверку на флаг паузы.
@EndLessEmbrace0
@EndLessEmbrace0 2 жыл бұрын
Отличная реализация паузы. Вопрос, а почему для fade не использовал dotween?)
@vladisslavss
@vladisslavss 2 жыл бұрын
Круто ) Спасибо за урок. Вроде бы просто но не просто) Почему просто не сделать статический класс паузы и прописывать ее применение в каждом элементе где она требуется?
@aTechRoar
@aTechRoar 2 жыл бұрын
Последний видос 8 месяцев назад. Канал всё?
@T1rfi
@T1rfi 2 жыл бұрын
Судя по говору человек с украины, думаю ему сейчас не до нас.
@JuggernautWare
@JuggernautWare Жыл бұрын
Может погиб
@Saltant
@Saltant Жыл бұрын
@@JuggernautWare Дада щас бы программистами в окопах сидеть, нет дружок, таких там нет, все или с белыми билетами или учатся в вузах с отсрочками или живут сейчас за пределами Украины.
@АлексейСтратулат-т8м
@АлексейСтратулат-т8м 2 жыл бұрын
Спаисбо, за полезный ролик. Есть такой вопрос, будете снимать ролики по ООП?
@gaitavr1992
@gaitavr1992 2 жыл бұрын
Это какие? У меня есть один
@АлексейСтратулат-т8м
@АлексейСтратулат-т8м 2 жыл бұрын
@@gaitavr1992 Что-то типа ООП от А до Я. Просто всё что я с курса помню, полиморфизм, инкапсуляция и наследование, что касается ООП. А вот зачем интерфейс или абстрактный класс нужен, это вообще.
@Bald_Panther
@Bald_Panther 2 жыл бұрын
@@gaitavr1992 лучше про ECS и DOTS
@evggg
@evggg 2 жыл бұрын
@@АлексейСтратулат-т8м а книги почитать? Это ж гораздо быстрее, чем смотреть видео, и информации больше.
@Driftmaniak_UA
@Driftmaniak_UA 2 жыл бұрын
Будем обновлять пачку объектов руками?)
@gaitavr1992
@gaitavr1992 2 жыл бұрын
Типо того)
@kingofbattleonline
@kingofbattleonline 2 жыл бұрын
Максим, я просмотрел все твои видео. Мне очень нравится твой контент. И только ты мне сможешь помочь в моей проблеме. У меня есть задача, в которой нужно использовать все время Instantiate. А как нам известно, это очень сильно много ест ресурсов. У меня есть массив из 10 Image. У них особенный порядок по возрастанию. Это числа, нарисованные в Фотошопе. Начиная от 0 и до 9. Алгоритм из числа строит эти числа в порядке числа. То есть, если был нанесен урон, 116, то мы берём индекс из массива 1, 1 и 6. И вот когда мы берём эти индексы. Происходит вызов Instantiate. Я попробовал закешировать эти числа. Но проблема в том, что когда показывается урон, у него есть таймер до исчезновения. И именно в этот момент, могут ударить ещё кто. И как тут быть? Пул не может включить другие объекты, ведь ещё не истекло время другого урона. До исчезновения. А кешировать ещё и растягивать пул - это все равно что просто использовать Instantiate. Прошу, Максим, помоги в этой задачи. Сразу пишу, что вариант использовать простой текст не подходит. И это не выходи и не как не решит условие задачи. Нужно именно работа с спрайтами или Image.
@MrGhost-bg6ud
@MrGhost-bg6ud 2 жыл бұрын
Можно менять спрайтам текстуру при доставании из пула. А с пулом вообще не вижу проблем. И нет, растягивать пул не равнозначно созданию через Instantiate. Пул растянется до определённого значения, как бы быстро не летели цифры. В перспективе это будет выгоднее. Возможно тебе стоит изучить пулы подробнее.
@albertmikhaylyuk7233
@albertmikhaylyuk7233 2 жыл бұрын
Музыка из второго старкрафта же?
@gaitavr1992
@gaitavr1992 2 жыл бұрын
Да
@albertmikhaylyuk7233
@albertmikhaylyuk7233 2 жыл бұрын
@@gaitavr1992 в таком случае "уважение +"
@lichlichi
@lichlichi 2 жыл бұрын
Почему партиклы не паузили?)
@vicktoriashepard
@vicktoriashepard 2 жыл бұрын
Вопрос, а если снаряды используют в качестве следа партиклы или trail ? Как их "паузить" ? Писать свои обертки как для аниматора? А разве состояние партиклрв можно "запаузить "?
@gaitavr1992
@gaitavr1992 2 жыл бұрын
Есть у партиклов метод pause
@boristyulkin8951
@boristyulkin8951 2 жыл бұрын
А что даёт избавление от Time.timeScale? Ну то есть для чего нужен этот метод с интерфейсом и менеджером паузы понятно, но почему нельзя было оставить в этой системе Time.timeScale = 0? Какие минусы?
@gaitavr1992
@gaitavr1992 2 жыл бұрын
Мне не нужно, чтобы глобально время останавливалось. У меня будет куча мест, где оно будет использоваться во время паузы
@boristyulkin8951
@boristyulkin8951 2 жыл бұрын
@@gaitavr1992 понял, спасибо за ответ. Но в целом, если есть потребность остановить время, это не так плохо?
@lekojoy7016
@lekojoy7016 2 жыл бұрын
Я ВАС ОБОЖАЮ ПРОСТОООО
@vomgame
@vomgame Жыл бұрын
Это получается надо в каждом объекте, в каждом Update, FixedUpdate, LateUpdate, OnCollisionEnter и прочем надо прописать if(PauseManager.IsPaused){return;}. Способ так то хорош, если этих событий мало. Где же ты золотая середина
@nightyonetwothree
@nightyonetwothree Жыл бұрын
FixedUpdate не вызывается при timeScale 0, и не зависит от фреймрейта. Лучшее комбо для паузы, по-прежнему. Золото имхо
@evilvirraZzz
@evilvirraZzz 2 жыл бұрын
Макс, у меня такая проблема. Событий много и они все разбросаны по проекту. (То есть если в IDE посмотреть ссылки на event bus то почти 2/3 проекта его используют для подписки отписки и вызовов события) Что делать в таком случае? По поводу видоса. Он топ как обычно :) Лучший канал =)
@gaitavr1992
@gaitavr1992 2 жыл бұрын
Постепенно выносить события в модули, которые их используют. Все, что внутри фичи и не должно быть наружу - первые кандидаты
@alexsklyarov6792
@alexsklyarov6792 2 жыл бұрын
@@gaitavr1992, спасибо за видео, по поводу модулей, возможно ты уже рассказывал про это, было бы отлично, если запишешь отдельное видео, как лучше проектировать эти самые модули, с примерами, что можно вынести в модули, для понятности.
@fffas3982
@fffas3982 2 жыл бұрын
Интересно, как в таком случае сделать плавную паузу? Типа как с затемнением. Или с физикой и партиклами как быть?
@gaitavr1992
@gaitavr1992 2 жыл бұрын
Смотря что учувствует в этой паузе, только лишь юай или еще что-то?
@fffas3982
@fffas3982 2 жыл бұрын
@@gaitavr1992 юай и игровые объекты. В Вашей игре, например, мобы.
@gaitavr1992
@gaitavr1992 2 жыл бұрын
Метод уже есть у мобов для работы паузы. Я бы сделал асинхронным вызов паузы, чтобы всех обработчиков ждали
@davidhops3952
@davidhops3952 2 жыл бұрын
Как же я долго оттягивал спросить этот вопрос у тимлида) Теперь уже не нужно.Всегда был уверен что таймскейл - не выход
@yaroslavmakarov2218
@yaroslavmakarov2218 2 жыл бұрын
Супер
@ichbinschlange
@ichbinschlange 2 жыл бұрын
Стало интересно, что такого можно наворотить с паузой. Казалось бы, создай state-машину, которая будет говорить кому надо "Стой собака" и делов то.
@ichbinschlange
@ichbinschlange 2 жыл бұрын
@@СветозарБоголюбов, физика не физичится сама по себе, её кто-нибудь куда-нибудь двигает, и ты говоришь ему "Не двигай". Со звуком тоже самое, ровно как и с музыкой. Ни что не работает сомо по себе, за всё кто-то отвечает. Может быть это не применимо к каким-то большим проектам, но к тому с чем я работал подходило неплохо.
@DarkW1zard
@DarkW1zard 2 жыл бұрын
У тебя там как дела? :(
@gaitavr1992
@gaitavr1992 2 жыл бұрын
У меня в порядке
@VentureGalaxy
@VentureGalaxy 2 жыл бұрын
Может ты всё же вернёшься к своему каналу? Грустно видеть что такой драгоценный материал не обновляется...
@yksi2883
@yksi2883 2 жыл бұрын
У парня война в стране, какие видео?
@VentureGalaxy
@VentureGalaxy 2 жыл бұрын
Пауза как-то затянулась :(
@dihaneeer
@dihaneeer 2 жыл бұрын
Ни чего не понял, но очень интересно!
@gaitavr1992
@gaitavr1992 2 жыл бұрын
Прискорбно
@TarantinoDvor
@TarantinoDvor Жыл бұрын
Бро плиз продолжи этот курс, сделай монетки за убийство и покупку таверов
@MickelBack888
@MickelBack888 2 жыл бұрын
ProjectContext.Instance.PauseManager.SetPaused(isPaused); Синглтоны, лучшее, что можно придумать, каеф 😆
@evggg
@evggg 2 жыл бұрын
Главное, умным словом назвать на манер DI.
@gaitavr1992
@gaitavr1992 2 жыл бұрын
Может потому что дальше и будет DI?
@evggg
@evggg 2 жыл бұрын
@@gaitavr1992 Ждем! А сравнение контейнеров будет? А то на первый взгляд вроде всё одно, но люди пишут и пишут новые.
@Vanolim
@Vanolim 2 жыл бұрын
@@gaitavr1992 ну когда же????
@neverworld8815
@neverworld8815 2 жыл бұрын
Старкрафт
@nickwilde5876
@nickwilde5876 2 жыл бұрын
я делаю по тупому: класс Config в нем статическое поле IsPaused и в коде где нужно проверяю если пауза, то прерываю выполнение или не считываю пользовательский ввод)) таймскейл безполезный, т.к. если на панели паузы будут анимации, например переливатся надпись Пауза то все заморозится))
@claudiff5581
@claudiff5581 2 жыл бұрын
есть возможность проигрывать анимации с нулевым таймскейлом. да и корутины с помощью WaitForSecondsRealtime не будут останавливаться
@АлексейБуров-т7ц
@АлексейБуров-т7ц Жыл бұрын
Реализация хорошая, но по факту рано или поздно забудешь в каком-нибудь объекте проверить на паузу. Я решил задачу намного проще - при паузе в любом случае появляется UI, я его и создал, а канву настроил как топ ордер и ScreenSpace.Overlay. Также добавил прозрачный background Image с растяжкой на весь экран - в таком случае нет кликабельных мест вне UI.
@FAKKER_rap
@FAKKER_rap Жыл бұрын
На клаве кликабельное место
@maxvell-gamedeveloper
@maxvell-gamedeveloper 2 жыл бұрын
Это изи, timescale в помощь
@gaitavr1992
@gaitavr1992 2 жыл бұрын
В этом видел я его как раз выпилю
@bibyter6451
@bibyter6451 2 жыл бұрын
Но зачем?
@bibyter6451
@bibyter6451 2 жыл бұрын
Надо лишь ещё ввод залочить и это самый простой вариант
@varlamov5264
@varlamov5264 2 жыл бұрын
А если надо меню паузы с анимациями сделать?
@bibyter6451
@bibyter6451 2 жыл бұрын
@@varlamov5264 unscaled time можно юзать
@butorindaniil
@butorindaniil 2 жыл бұрын
Круто получилось! Но так сразу и не понятно о чем видео, мне кажется Вам бы превью улучшить не помешало) Могу попробовать сделать, первую бесплатно, а потом по 300 рублей за работу. Я уже сотрудничаю с несколькими блогерами, жалоб нет. Все работы и заказы могу предоставить) Пишите в телеграмм или в вк, ссылки есть на канале.
@rulystik
@rulystik 2 жыл бұрын
канал к сожалению умер
@Mistor_AHN
@Mistor_AHN 2 жыл бұрын
Автор пожалуйста перенеси свои обучающие видео на российский ресурс(-ы) и оставь ссылку, на случай блокировки youtube. Я согласен на многие лишения ,но потерять твой свет учений будет очень больно!
@СергійІванов-ш1г
@СергійІванов-ш1г 2 жыл бұрын
Лучше сами найдите пиратский ресурс для скачивания видео с ютуба, а то, что Вы предлагаете, поддерживало бы деньгами российскую армию (через налоги).
@Hellscaner
@Hellscaner Жыл бұрын
@@СергійІванов-ш1г вас и так Россия поддерживает деньгами, за транзит деньги платят. Воюет простой народ которому это нахер не далось, а чинуши которые всё это заварили воруют и наживаются со всех сторон.
@sergeyivanov3967
@sergeyivanov3967 2 жыл бұрын
Спасибо, что не удалил канал. Сподіваюся продовжиш його після Перемоги, але вже, звісно, українською мовою.
@dizelman1972
@dizelman1972 2 жыл бұрын
Это урок как делать не надо
Tower defense on Unity3D. Tiles upgrades
12:39
Максим Крюков
Рет қаралды 4,4 М.
Creating An Inventory System in Unity
11:03
Game Dev Guide
Рет қаралды 185 М.
Mom Hack for Cooking Solo with a Little One! 🍳👶
00:15
5-Minute Crafts HOUSE
Рет қаралды 23 МЛН
UFC 310 : Рахмонов VS Мачадо Гэрри
05:00
Setanta Sports UFC
Рет қаралды 1,2 МЛН
IL'HAN - Qalqam | Official Music Video
03:17
Ilhan Ihsanov
Рет қаралды 700 М.
PAUSE MENU in Unity
12:13
Brackeys
Рет қаралды 1 МЛН
Как правильно сделать пауза в игре на Unity.
25:06
🔊 Всё про звук в Unity3D [Tutorial]
21:31
Emerald Powder
Рет қаралды 100 М.
Переключение анимаций в Unity
9:23
GDev Academy
Рет қаралды 23 М.
Как сделать указатель на врагов в Unity?
27:28
Introduction To Object Pooling In Unity
4:14
bendux
Рет қаралды 50 М.
Mom Hack for Cooking Solo with a Little One! 🍳👶
00:15
5-Minute Crafts HOUSE
Рет қаралды 23 МЛН