Боже мой, такой качественный подход к видео, просто шик. Все максимально наглядно, доступно, лаконично и интересно. Слава богам, что есть такой человек на ютубе. Для новичков ты просто имба
Вав!, уже и надежды не было, а тут новое видео! Ура! Ты вернулся? Дождемся ли мы от тебя ecs ? Тем более за это время оно сильно изменилось! Спасибо за как всегда отличный разбор актуального материала!
неееет,так не бывает! решить познакомится с твинами, включить ютуб для поиска инфы и увидеть что крутейший канал как раз выпустил на эту тему видео. вечер удался,спасибо!
Лучший канал по Unity на русском) Сам использую Lean Tween, каких-то проблем пока не было, хотя я и не юзаю их где попало. Инструментарий крутой и нужный в любом проекте, при должном подходе упростит жизнь кратно
Спасибо! Да, есть мнение что LeanTween решает некоторые из тех проблем что я упоминал в видео, но почему-то DoTween всё равно гораздо популярнее, так что для видео выбрал его
Огромное спасибо! Доделал игру, а на телефоне постоянно выкидывает, оказывается сейв мод меня насиловал, 3 дня не мог найти причину. Включил видео чисто под еду, а по факту решил проблему. Ты лучший
Блин, только сейчас увидел, что ты про дутвин видяву запилил. Уже имею опыт использования дутвина, но, конечно, открытий после этого видео много) Хочу ещё сказать спасибо за твое видео про генерацию чанков, это мне помогло прописать спавн биомов со своими чанками в своем 2д раннере
Видос хорош. Как раз планирую заняться освоением DoTween и Cinemachine. Но вот что действительно было бы интересно, так это услышать твое мнение про Odin и его минусы, если найдешь) Если выпустишь про него видео, то с удовольствием расскажу о том, с чем мы на работе столкнулись)
Бля , спасибо тебе огромное , ты просто топ , я бы хотел что б ты чаще выпускал видосы , ты топ , и твои видео очень помогли мне в начале , и сейчас я основал свою студию 😀
Наконец ты вернулся 🔥 как бальзам на душу. В будущих видео хотелось бы увидеть разбор Zenject и не просто bindings, а Signalbuses, Factories, проброс нужных зависимостей при инстанциации в рантайме, там ещё вроде декоратор какой-то есть. Также можно самые крутые и практичные фишки Odin рассмотреть. Можно также addressables захватить 🔥
я тут недавно решил освоить геймдев после веб-разработки. У меня вот есть такие "хотелки": 1) Пак полезных библиотек/ассетов для новичков, без которых не обходится ни один разработчик. 2) Обзор ESC (желательно на примере DOTS и какого-нибудь популярного кастомного решения), а также реальное мнение о его необходимости для инди разработчиков (чтобы понимать, насколько большие проекты можно делать БЕЗ него). 3) Обзор новой официальной сетевой библиотеки NetCode.
В общем вывод такой, что за простой, на первый взгляд, библиотекой кроется гибкий функционал, большинство параметров которых стоят по умолчанию. Из-за чего и возникает ложное ощущение простоты, после чего теряется бдительность. То есть легко выстрелить себе в ногу. Минус состоит в том, что в руки дают одну маленькую красную кнопку, по нажатию которой запускаются ядерные ракеты, то есть большой функционал скрывающийся за простыми вызовами. То есть совет, давать себе во всём полный отчёт, если на первый взгляд простой функционал используется на продакшене, то быть максимально ознакомленным с внутренним функционалом и отдавать себе отчёт, что происходит под капотом при вызове всего лишь одной функции.
Хорошее видео, но мне кажется немного не правильный посыл. Автором описаны ошибки совершаемые разработчиком как минус использования библиотеки, которая не рассчитана на поиск таких неточностей и недоделок. Ведь используя какую-то сетевую библиотеку и сформировав неправильный запрос так-же можно уронить приложение или получить неправильный результат. Да и написав свой код можно такого наворотить и с анимациями и с таймерами и т.д. Лучше было бы сделать упор на то что нужно всегда быть внимательным используя любую библиотеку облегчающую разработку и не ленится всегда использовать всевозможные проверки. К примеру хорошо было замечено что твин при создании возвращает свой экземпляр и на любые создаваемые анимации нужно получать этот экземпляр и хранить его например в некотором списке, чтоб в любой момент можно было остановить и очистить все анимации принадлежащие некоторой части кода. Жалко что видео выходят так редко 😢, люблю вас смотреть.
Спасибо за разбор, видео даёт понять надо ли оно для какой-то несложной программной анимации или проще накостылить своё перемещение картинки например таском. Автор, если работал с Cinemachine, пожалуйста сделай подобный разбор, буду очень благодарен!
Про SafeMode - изначально там этой настройки не было, все падало в Warning. И проблема в том, что в крупном проекте, когда не хочется пропускать неиспользуемые поля, в варнингах будет 999 и более сообщение которые несут 0 полезной информации. В итоге все эти ошибки дутвина всегда пропадали. Я так намучался с этим дерьмом, что нашел автора в твиттере и попросил запилить его фичу, которая бы позволяла переключать Warning в Errors - автор DoTween даже предположить не мог, что с его либой есть такая проблема.
Привет! Подскажи, кубики как на видео это просто модельки или ты их как то с шейдерами делал и тд? Интересно как делают всякие кубики типа желе 2048, но найти пока не могу..(
Я пишу код либо без плагинов, либо не знаю какие использую, так как в ничего из стандартной версии юнити не менял. Поэтому интересно какие плагины ты используешь чаще всего, то есть самые полезные и универсальные.
Еще посмотри при Odin inspector. Я закидываю его в каждый проект. Он позволяет оформить удобный и функциональный инспектор просто за счёт нескольких атрибутов и позволяет делать окна редактора с минимальными затратами времени. Короче, идеальный инструмент чтобы привести проект в порядок и наполнить редактор новым функционалом
Маловероятно что прочтут но напишу у ду твина есть ещё очень одновременно удобная и зубодробительная штука. А именно ду виртуал кол дилей. Что это такое и зачем оно надо?! Всё просто, ет по сути твин что ждёт указаное вами время и вызывает колбек так вот, эта штука очень и очень опасна. Ибо как не сложно догадаться ду твин считается отдельно и живёт в своей оболочке которая даже если и киляет твины то немного не сразу, и если так получится что вот, то что должно выполниться по истечению срока не выполняется, то это вам даст как минимум ANR или нул реф или инвалидиндекс... , общем много чего и будет вообще не понятно откуда это чудо лезет и как например логика из одной сцены крашется когда запущена другая сцена, ибо мы привыкли что юнити GC будет сам подчищать а игры наши много кода хендлят монобехами и пока код там таких ситуаций нет. А ду твин живёт отдельно от этого всего, и мало того что срабатывает не сразу ещё и отловить подобное только плейтестом можно. Потому рекомендую даже если и использовать такое то обарачивайте проверками хотя бы.
Такой вопрос. А если этому коду добавить SetTarget и привязать к gameObject. То всеравно будет жить после перехода с одной сцены на другую? Ну и это считай как делать дондестрой корутин раннер. Что бы юзать корутины не только у монобехов. За таким надо следить и понимать что ты делаешь. А не бездумно юзать все)
Там суть в том что можете дестроить гейм обджект из которого вы стартовали твин сколько угодно, но этот вызов будет жить отдельно, и когда он выполниться то попробует вызвать код что у него в комплите не в зависимости от чего либо. Например такие проблемы я встречал при переходех между сценами когда ду виртуалы пытались что-то сделать уже вообще в другой сцене. Единственный способ избежать проблем или проверки в комплите, или в ручную твин дисторить конкретный в дестроях классов гед его вы запускали. И как просил автор я просто указал пример того где я видел проблемы к которым приводило использование ду твина. А так понятно что можно сделать себе проблем чем угодно и не только твинами.( Если не понимать что делаешь, потому ет просто пример проблем которые я встречал и что непосредственно связана с дутвином)
Что-то я не понял про ексепшены: разве при try...catch не генерируется такой же эксепшн как и без него? Или тут речь идет о том что с safe mode разрабы забивают на эксепшены и не пытаются их как-то избегать, что ведет к увеличению их количества и ухудшению производительности? Update: похоже разобрался в чем проблема, прочитав оригинал статьи футажи из которой используются в видосе: "Why Exceptions should be Exceptional" by mattwarren. Дело в том что автор ролика пишет стандартную try...catch конструкцию, хотя в статье рекомендуют использовать if...else где это возможно и не нужен конкретный функционал из эксепшена. Т.е. когда автор говорит что "try...catch" ничего не стоит, тут видимо должно быть "if...else ничего не стоит". Толи автор не до конца понял смысл статьи, толи просто оговорился, толи автор вообще про другое говорил...
Как добиться такой скорости компиляции кода (не уверен насчёт операции, когда после изменения кода переходишь в юнити)? У меня при любых изменениях кода, даже пробел - загрузка в юнити по секунд 10-20 даже в пустом проекте с одним классом. ССД хороший, процессор тоже
Видео отличное, но немного конструктивной критики: Не совсем согласен с автором про минусы - такие минусы можно приписать вообще любой библиотеке... То, что разработчик не указал одно значение, пытается использовать другое, не думает о том, что происходит переписывание и т.д. - это проблема не библиотеки, а самого программиста. Что мешает мне ошибиться при загрузке аддрессеблов, забыть забиндить интерфейс в зенжекте, не указать timespan при использовании observable в unirx и т.д.? Это будет моя и только моя ошибка, но никак не этих библиотек.
Ошибка будет в итоге конечно виной того кто библиотеку использует, и ему и придётся её фиксить. Но тут вопрос в том насколько библиотека дружелюбна, и насколько её архитектура помогает ошибки находить и исправлять. Могло бы быть так, например, что привязанный gameObject это обязательный параметр, и тогда если его не укажешь код бы даже не скомпилился, и я бы сразу увидел ошибку. Могло бы оно кидать ексепшн и останавливать игру, тоже вариант, пока играл бы обязательно заметил. Но библиоткеа выводит варнинг со списком всех ошибок когда я выхожу из плеймода. Что тоже конечно можно прочитать, разобраться, найти через Ctrl+F это место, и пофиксить, но мне лично уже гораздо сложнее
Само по себе не плохо, если нет проблем с физикой, и каких-то ошибок из-за этого. Но если потом в проекте начнёт логика усложняться, и обнаружишь что 8 часов искал почему дверь не открывается, а там просто в AppendCallback раз в час падал ексепшен, и из-за этого вся анимация переставала выполняться, то лучше следующий день потратить на то чтобы переделать всю эту логику без дутвина
Оч круто! Я в принципе сторонник самописных скриптовых анимаций, но было интересно послушать ту часть про подкапотку. Прошу, расскажите про среды разработки. В своём собственном сравнении и опыте. Я сижу на вс2019 и с одной стороны норм, с другой совершенно не доволен. Хочется светлую тему что бы глаза не вытекали и что бы были подсказки (в вс2019 в светлой теме всё как в нутпаде черное по белому, поэтому темную использую что бы быстро отличать методы от полей и тп). Хочется послушать про пыхшторм, насколько он прожорливее вээса от мелкомягких и приятнее ли, и есть ли нормальная светлая тема. Спасибо
@@veiterio вижла2019 у меня уже стоит, вс код тоже пробовал, там гемора больше. Светлая тема в вижле2019 отстой (намного меньше подсветок чем в тёмной). В других IDE есть подсказки помимо цвета текста, как минимум дополнительные блоки, что может упростить восприятие в светлой теме. Либо еще что то, о чем я не знаю, например обводка текста?
@@veiterio пробовал 2022 года, оверлоад шибко. у меня 3570к, тянет 2019 года, но 2022 уже заметны необоснованные тормоза. 2022 ставил потому что он поддерживает некоторые плагины, через которые я сам писал свою белую тему, но это всё бред собачий, всё неудобно. В этом плане майкрософт опять сосёт бибу и отстаёт от нормальных софтоделов. имхо
Подскажи плиз, как в дотвине прописать не в течении которого времени анимация должна проиграться, а скорость анимации? Пробовал расстояние делить на время. Но как то криво получалось
Однажды я чинил баг и случайно залез в исходники ду твина... С тех пор меня начинает подташнивать при одной только мысли что это гавно просто лежит в проекте и даже если не используется. На практике большую часть анимаций можно сделать через AnimationClip. Если реально нужна процедурная анимация (и без нее никак) тогда велкам корутина + интерполяция по AnumationCurve. Если вам кажется это сложным и вообще "многакоданадописать" - вынесите это в отдельный компонент и переиспользуйте - привет КОП :)
@@Fatalix3d Гавнокод. Срач в названиях переменных, закомментированный код, выравнивание как из жопы, куча копипасты и магических чисел. Вобщем все классические антипаттерны которые можно было собрать автор собрал... Как буд-то специально ачивки коллекционировал :)
Да, когда аниматоров много то они совсем не быстрые. Но думаю всё таки дутвин выбирают больше за простоту и удобство. Если начинает лагать из-за аниматоров, и на сцене несколько сотен-тысяч обьектов, наверное всё таки лучше своё что-то написать, более узконаправленное
@@EmeraldPowder Дело не во всех аниматорах, покадровые через аниматор достаточно быстрые, но использование Transform сильно бьёт по производительности, частично это решает dots, но он ещё не в той стадии что бы был применим для продакшена, в итоге я для себя сделал костыль, который в редакторе создаёт раскадровку для IK анимаций с указанной частотой кадров, но это тоже так себе вариант, во первых теряется плавность, во вторых пожирается много оперативки, особенно если делать большое количество кадров
Лучший канал по Unity на русском и не только! Очень хочется узнать у вас про архитектуру проекта, правильному взаимодействию игровых объектов между собой. Например я, если нет возможности вручную устанавливать ссылки на другие объекты, использую отдельный статик-класс, который в свойствах хранит ссылки на нужные объекты MonoBehaviour, устанавливающиеся в методах Awake() и Start() соответствующих скриптов. В моих проектах, которые даже мелкими назвать сложно, такой подход работает и позволяет избегать дорогостоящих вызовов FindObject() и GetComponent(), и в принципе получается очень удобно. Но я также понимаю, что по мере роста проекта, в том классе может находиться уже несколько сотен свойств, следить за ними будет трудно, а известные мне альтернативы (например, Singleton или Generic-Singleton) не кажутся сильно лучше простого статик-класса.
Привет, существует много разных архитектур, каждый выбирает под свой случай, поэтому как здесь посоветовать. Если ты делаешь небольшие проекты, то можно продолжать и так, а если собираешься делать что-то крупно-маштабное, можешь посмотреть в сторону Zenject + MVP