Тёмный

Object Pool, Пул объектов, Паттерны на практике, Unity, C# 

Sergey Kazantsev
Подписаться 4,6 тыс.
Просмотров 4,3 тыс.
50% 1

Ссылка на гитхаб игры:
github.com/Haywaar/VerticalSc...
для пула от юнити прыгайте на ветку UnityPool
Ссылка на гитхаб классного EventBus где тоже есть пул
github.com/PeturDarri/Generic...
Автору на кофе и шаурму
4276 5500 5792 8742 - карта Сбербанка
Если будут вопросы
мой тг @wargy
моя почта kazancev.s215@gmail.com
Тайминги:
00:00 Введение
00:31 Проблема: ограниченная вычислительная мощность
01:58 Определение
02:55 Пример из жизни
03:23 Пример пула в геймдеве и в нашей игре
04:21 Технические моменты пула
06:17 Код пула в нашем скроллере
07:49 Object Pool от Unity и как его использовать
10:00 Направления модификаций пула объектов
11:02 Когда использовать пул объектов
12:45 Финал

Игры

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

 

14 июл 2024

Поделиться:

Ссылка:

Скачать:

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

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 28   
@slava_bro
@slava_bro 4 месяца назад
Качество видео поражает, коммент в поддержку
@latiyacanemi4473
@latiyacanemi4473 Год назад
В очередной раз отличный урок! Спасибо большое!
@STIGRADOR
@STIGRADOR Год назад
Было б здорово пообщаться на тему Unit Testing
@user-yn6np8xi7k
@user-yn6np8xi7k Год назад
Как всегда всё на высоком уровне. Спасибо! P.S.: надеюсь доползешь до 2-го проекта, было бы очень интересно посмотреть.
@sergeykazantsev1655
@sergeykazantsev1655 Год назад
Спасибо, а я кажется догадался, кто тот Вячеслав кто мне донатит :D
@user-yn6np8xi7k
@user-yn6np8xi7k Год назад
@@sergeykazantsev1655 это мелочь, хороший урок бесценен )
@jasim1798
@jasim1798 Год назад
отличное видео, спасибо
@user-qu9jm4zf3d
@user-qu9jm4zf3d Год назад
Спасибо за Pool!!!!
@user-kr8sy3ck4n
@user-kr8sy3ck4n 9 месяцев назад
😀😀😀 а что так можно было что ли) Респект автору, сейчас можно найти кучу коричневой субстанции и лишь немного чего-то стоящего. Не забрасывай RU-vid.
@rikygoxd5472
@rikygoxd5472 9 месяцев назад
Начал заниматься юнити месяц назад как хобби, основная работа веб. Это один из не многих каналов на эту тематику с таким высоким уровнем качества контента
@user-yn6np8xi7k
@user-yn6np8xi7k Год назад
Еще интересно было бы послушать про шаблоны GRASP в контексте разработки на Юнити.
@sergeykazantsev1655
@sergeykazantsev1655 Год назад
Хорошая идея, возьму на вооружение)
@gendgee
@gendgee 11 месяцев назад
❤❤❤
@forcesoftheevil9252
@forcesoftheevil9252 Год назад
Хороший кастомный пул и подарок после защиты курсовой))0) Сергей, насколько важно джуну знать реактивное программирование? Хотелось бы по этой теме видео посмотреть
@sergeykazantsev1655
@sergeykazantsev1655 Год назад
Поздравляю с защитой курсовой!) Вообще, джунов давно не набираем, команда устоялась, так что актуальную ситуацию не знаю. Мне кажется реактивное программирование стоит выше обычных требований к джуну, но так как рынок переполнен кандидатами, я бы сказал что будет здорово понимать концепцию реактивных свойств, дата биндинга, и "что-то слышать про uniRx". Вы вроде видели видео про MVVM там эта тема косвенно упоминается.
@maximkrikckunov422
@maximkrikckunov422 Год назад
Класс! Подробно и доходчиво, давай еще про оптимизацию! Сцена дает 90 FPS, но процессор грузит по полной, как ограничить FPS и нагрузку на процессор?
@sergeykazantsev1655
@sergeykazantsev1655 Год назад
Это очень сложный вопрос, надо индивидуально смотреть) Общий совет - надо лезть в профайлер и смотреть что больше всего нагружает CPU
@maximkrikckunov422
@maximkrikckunov422 Год назад
@@sergeykazantsev1655 Понял, спасибо)
@fakhriev9346
@fakhriev9346 Год назад
Привет, классные ролики! Имеется вопросик: иногда в требованиях в вакансиях вижу такую строку "Опыт оптимизации приложений под мобильные устройства (CPU, GPU, RAM)" и эта фраза не вводила бы в заблуждение, если бы не текст в скобках. Тот же обджект пул не относится ведь к этому, так как это просто оптимизация, а не оптимизация под мобильные устройства CPU и GPU? Или имеется в виду какие-то плагины под андройд, написанные на java и т.п.? Расшифруйте для неопытного, пожалуйста
@sergeykazantsev1655
@sergeykazantsev1655 Год назад
Привет! Спасибо! Могу ошибаться, но с моей точки зрения под опытом оптимизации подразумевается опыт работы с профайлером и понимание какие вещи могут нагружать игру. В зависимости от того что именно вы делаете в игре: у вас будет страдать или CPU(много сложной физики, коллайдеров, многослойного взаимодействия между объектами или много Instantiate, Destroy или много кода в Update-ах) или GPU(Мощный визуал, сложные шейдеры, текстурки, много риалтаймового света, возможно тяжёлые канвасы тоже видюху грузят, но может и CPU уже не помню) или RAM ( много объектов на сцене с большим количеством полигонов, огромные миры) То есть простым языком, надо понимать что в вашем проекте может сильно нагрузить вашу игру. Обычно достаточно соблюдать базовые правила оптимизации, чекать профайлер, количество draw call-ов и batch-ей и станет понятно где проблема
@fakhriev9346
@fakhriev9346 Год назад
@@sergeykazantsev1655 понял, спасибо!
@gwynbleinn
@gwynbleinn 5 месяцев назад
можете поподробнее чем стэк лучше листа в данной ситуации?
@sergeykazantsev1655
@sergeykazantsev1655 5 месяцев назад
Полагаю что дело в асимптотике, вставка элемента в коллекцию свободных элементов и извлечение осуществляется за о(1) В моей реализации и свободные и занятые элементы находятся в одном списке и там асимптотика дороже: о(n)
@gwynbleinn
@gwynbleinn 5 месяцев назад
@@sergeykazantsev1655 то есть в теории, если бы вы использовали лист для свободных элементов и просто брали бы оттуда элемент под 0 индексом, то стоимость была бы одинаковая?
@sergeykazantsev1655
@sergeykazantsev1655 5 месяцев назад
Нет. По алгоритму от юнити нам нужно не только брать элемент под 0 индексом, но и удалять его из коллекции. Вставка и удаление в стеке верхнего элемента занимает o(1) Вставка и удаление в листе верхнего(индекс 0) элемента занимает o(n) Тут скорее можно поизвращаться и вставлять и удалять элементы в листе из последнего элемента, так как вставка и удаление последнего элемента так же требует o(1). Но не следует забывать о Capacity в листе и в случае если лист переполняется, то он пересоздаётся с объёмом в 2 раза больше предыдущего и таким образом мы тратим o(n) на копирование из старого маленького массива в новый расширенный
@teawizzard
@teawizzard Год назад
Личное наблюдение : если постоянно говорить типо "Как колхозник" "Нюб" и в таком духе, то потом у новичков просыпается жуткая неувереность в себе и когда метод просто работает нормально, то оони боятся его пременить и в итоге никто не кодит.... поетому ненадо вот ето вот, нормальный код
@sergeykazantsev1655
@sergeykazantsev1655 Год назад
Спасибо за мнение! Объясню свою позицию. В сообществе программистов есть немалая доля перфекционистов, которые помешаны на ООП, оптимальности и идеальности каждой строчки кода. Лично видел синьора с огромным опытом который не мог написать за месяц раннер типа сабвей сёрфера, ибо завяз в сложных абстракциях. Несмотря на то, что на моём канале мало подписчиков и просмотров, на мой канал уже залетают мамкины перфекционисты которые начинают меня критиковать, один такой упорно доказывал что сервис локатор бесполезный и вредный паттерн и его нельзя ни при каких обстоятельствах использовать. Словами про "колхозника" я говорю о том, что код может нарушать какие-то ООП принципы, этот код можно написать лучше и качественнее. Тем не менее этот код выполняет поставленную задачу, не создаёт проблем производительности и его довольно удобно расширять. Так что данный код приемлем с моей точки зрения. И этими вставками я пытаюсь показать новичкам мысль, что даже хорошо написанный и работающий код может иметь слабости, неоптимизированные места, недоработки и тд. И это норма жизни, с которой скорее всего каждому придётся столкнуться.
@teawizzard
@teawizzard 11 месяцев назад
@@sergeykazantsev1655 Ахахаха, ну да, я тебя понял, спасибо за ответ. Тогда Братан, хорош, давай, давай, вперёд! Контент в кайф, можно ещё? Вообще красавчик! Можно вот этого вот почаще? XD
Далее
МЕГАЯЩИКИ ВЕРНУЛИСЬ В BRAWL STARS
20:36