Тёмный
No video :(

Оптимизация игры на Unity. Object Pooling 

Night Train Code
Подписаться 9 тыс.
Просмотров 8 тыс.
50% 1

Салют, ты на канале Night Train Code :)
Как оптимизировать игру в Unity с помощью Object Pool? Повышаем низкий фпс в Unity (2D и 3D)
• 🖤 NightPool на GitHub: github.com/Mee...
Вариант оптимизации игры на Unity подойдёт и под мобильные устройства
• 🖤 GitHub: github.com/Mee...
• 🖤 VK: nighttr...
• 🖤 Telegram: t.me/nighttrai...
• 🖤 Instagram: / the.meps_
Таймлайн:
00:00 ► Вступление
00:31 ► Что такое Object Pooling
00:48 ► Как установить Night Pool
01:07 ► Как использовать Night Pool
01:48 ► Как закэшировать объекты до начала игры
02:36 ► Принцип работы на практике
03:13 ► Как сбросить параметры объекта при повторном спавне
04:17 ► Пример реализации OnSpawn() и OnDespawn()
04:51 ► Night Pool Despawner
05:11 ► Про новую систему NightCache
05:55 ► Спасибо за просмотр :)
Поддержка канала:
www.donational...

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

 

17 авг 2024

Поделиться:

Ссылка:

Скачать:

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

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 44   
@NightTrainCode
@NightTrainCode 2 года назад
Актуальную версию пула можно всегда найти на GitHub, так как я периодически выкладываю обновления 😎 • 🖤 NightPool на GitHub: github.com/MeeXaSiK/NightPool + Всегда есть обновлённая документация на GitHub, если что-то не совпадает с роликом)
@super207room
@super207room Год назад
Да ты зайка, я месяц думал, как это оптимизировать❤
@NightTrainCode
@NightTrainCode Год назад
Ахах, спасибо) У меня скоро обнова пула выйдет, подробности в телеге
@lepota5050
@lepota5050 2 года назад
Супер, спасибо большое твои это струя , особенно самый первый я угарал долго, ну супер.
@NightTrainCode
@NightTrainCode 2 года назад
На здоровье) Спасибо
@danil_zz
@danil_zz 2 года назад
Понравилась стилизация локации. Насколько понял, это low poly без текстур? Можно подробнее, где это и как создаётся? Для мобил самая тема
@NightTrainCode
@NightTrainCode 2 года назад
Это в ассет сторе покупается 😅
@danil_zz
@danil_zz 2 года назад
@@NightTrainCode можете порекомендовать, что за ассеты?
@NightTrainCode
@NightTrainCode 2 года назад
@@danil_zz В основном всё покупаю от Synty Studios
@DimokFa
@DimokFa 10 месяцев назад
Скорее всего вертексы раскрашивали. С Вертекс колор даже UV не используется.
@elvinbayramov7389
@elvinbayramov7389 11 месяцев назад
А где достать Night Cache? Использую старую систему MonoCache, но в гитхабе другой нет
@ThePirateHistory
@ThePirateHistory 2 года назад
3 месяца это как срок, и единственное к чему я притронулся за это время это годот, и игру по тутору)
@NightTrainCode
@NightTrainCode 2 года назад
Я был "заточён" в камере разработки мобильных игр, программирования на ECS и получения большого опыта ;) Как-то смотрел обзор Годота, не знаю насколько тема перспективная. В общем, Unity не изменяю с 2012 😎
@ThePirateHistory
@ThePirateHistory 2 года назад
@@NightTrainCode сомневаюсь что в годоте есть перспективы такие как в юните' да и в юнити быстрее и проще вещи делать' плюс огромное количество готовых решений
@NightTrainCode
@NightTrainCode 2 года назад
@@ThePirateHistory И не поспоришь, огромное комьюнити и ассет стор тащит)
@unitynub5390
@unitynub5390 2 года назад
Не пойму что не так делаю... Заменяю в скрипте "Instantiate" на "NightPool.Spawn" и мне "NightPool" сразу подчеркивает красным и выдает ошибку: "Имя "NightPool" не существует в текущем контексте". Может нужно что-то добавить в скрипт? Я новичок в коде... Автор, помогите пожалуйста. P.S. - И папки Plugins у меня в архиве нету.
@rybinded
@rybinded 2 года назад
Вверху вашего скрипта нужно добавить строчку: using NTC.Global.Pool;
@grandsunhar
@grandsunhar 2 года назад
Супер
@rybinded
@rybinded 2 года назад
Автор, спасибо за вашу работу! Подскажите, почему объекты из пула не всегда "деспавнятся"? Сделал пул объектов для Particle Sistem при попадании пули в землю, эффект уничтожается через секунду. Запускаю игру в Юнити, открываю список (как у вас на видео 02:54), в иерархии и наблюдаю такую картину: первый выстрел - префаб засветился и потух (деспавнится), второй выстрел - префаб засветился и не тухнет (не деспавнится). Ну, и так пока все 10 шт не остаются активными. На сцене видно, что объект не удалился, а остается в игре хоть его и не видно так как анимация частиц разовая. Подскажите, на что нужно обратить внимание? Буду очень благодарен.
@rybinded
@rybinded 2 года назад
Разобрался))) Повесил "деспавнер" на объект. Спасибо тебе за работу!
@user-fu4rf6zm8m
@user-fu4rf6zm8m 11 месяцев назад
@NightTrainCode, нужна помощь, как в NightPool Активировать и деактивировать именно тот объект, который находится в NightPoolENtry, я пишу все так, как ты говоришь в видео, но он создает новые префабы на сцене, а те которые кешируются на сцене просто лежат деактивные
@NightTrainCode
@NightTrainCode 11 месяцев назад
Он создает пулы и кэширует туда объекты. Через NightPool.Spawn
@orcan377
@orcan377 2 года назад
а почему из Zenjectа не сделал Фабрик-пул??
@nikolaiii3
@nikolaiii3 10 месяцев назад
Игруля клон Серьезного Сэма.
@NightTrainCode
@NightTrainCode 10 месяцев назад
А почему не клон Painkiller или Will Rock?)
@nikolaiii3
@nikolaiii3 10 месяцев назад
@@NightTrainCode Наверное вот почему не Уил Рок - "GameSpot criticized the game for being a mindless knockoff of Serious Sam in a more negative review." А Painkiller всё же совсем не такой.
@nikolaiii3
@nikolaiii3 10 месяцев назад
@@NightTrainCode Не могу вспомнить точно в какой части, но не только локация очень похожа. Но и поведение врагов.
@stasonick
@stasonick 2 года назад
Можно пример с кэшированием. Не понял как это делать в коде (
@_Otets_
@_Otets_ Год назад
Так на протяжении всего видео и показывают кеширование объектов. Кеширование - это сохранение объекта для его переиспользования при повторном запросе.
@panama2553
@panama2553 5 месяцев назад
Где можно посмотреть ваши игры ?
@NightTrainCode
@NightTrainCode 5 месяцев назад
Ссылки на проекты, в разработке которых я принимал участие, есть в моём GitHub профиле
@user-sg2dh8rt4l
@user-sg2dh8rt4l 2 года назад
У листа же есть цикл ForEach, который быстрее for и foreach
@NightTrainCode
@NightTrainCode 2 года назад
Быстрее, чем foreach точно, с for там примерно одинаково
@user-sg2dh8rt4l
@user-sg2dh8rt4l 2 года назад
@@NightTrainCode ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-8yATAWTa7_I.html 3:26
@alex_konor2197
@alex_konor2197 Год назад
У тебя получается ограниченное количество мобов одного типа на сцене может присутствовать? Я так полагаю да, ты же тупо объекты перемещаешь и включаешь. Значит это костыль.
@NightTrainCode
@NightTrainCode Год назад
Паттерн Object Pool загугли и не неси чушь
@gamingpro3324
@gamingpro3324 2 года назад
привет,можеш помочь,кароче, игра у меня на пк выдает 100 фпс(оптимизировал игру смотря на ваше видео) но когда запускаю на телефоне выдает 20-30 фпс, ладно подумал я, убрал все дома,поля,деревья и тд, все равно 20-35 фпс, шо делать
@NightTrainCode
@NightTrainCode 2 года назад
Привет! 1) Посмотри все остальные ролики, за исключением видео про Light Probes, не так важно в этом случае 2) Если ты использовал Night Pool, то, возможно, закэшировал слишком много объектов для телефона и нужно уменьшить Size. Как игра работает без пула? 3) Поставь тип всех источников освещения на Baked, вместо Realtime или Mixed и запеки освещение, возможно где-то рилтаймовые тени жрут ресурсы 4) Везде ли всё прожат Static на статичных объектах? 5) Если используешь URP, то включён ли SRP Batcher и Dynamic Batching в SRP
@NightTrainCode
@NightTrainCode 2 года назад
@Oleksandr Olshynskyi В основном на программистов гонят, когда дело в кривых модельках)
@danil_zz
@danil_zz 2 года назад
А это не удивительно. На мобилах fps специально ограничен половиной частоты экрана (30 против 60Гц) ввиду того, что батарею экономить надо, а 24Гц это с эпохи кинематографа считается непрерывным для глаз, т.е. 30 это самое то. У тебя и на пустой сцене тоже 30fps будет выдавать. Не парься насчёт 30, но подумай насчёт 20. Во-первых, поставь разрешение в 2 раза меньше от текущего (смартфоны сейчас ставят разрешение чуть не FullHD минимум, что и компы то иногда не тянут, а ты поставь 960*540). Во-вторых, отключи Post Effects, в третьих, ставь URP где даптированные шейдеры под мобилу и не только они. А далее, только Profiler с подсоединением девайса покажет где у тебя дыры.
@newGames_0
@newGames_0 2 года назад
Унылый геймплей. Думаю стоит добавить больше побочных механик, чтоб разбавить скуку от убийства мобов. Я видел, что некоторым вполне норм днями мобов ложить.. однако так лично я не могу. Может игра вообще не об этом, но было бы лично мне интереснее если бы была какая-то необходимость в оставлении мобов в живых. Сделать головоломки, но это уже приевшаяся темя... хотя по настоящему сложных не хватает. Только бы вот иметь возможность пройти дальше без решения таких задач. Вот бы иметь возможность с мобами сделать что-то помимо убийства. В скайриме можно смешивать ингредиенты, чтобы узнать их свойства в зелья. Вот бы что-то подобное можно было делать и проверять на мобах. Двигать предметы иногда весело, как и убивать ими. Можно и стелса, но это же как я вижу нечто подвижное. По лору сделать противникам некий роевой интеллект. Я могу так ооооочень долго, но думаю ты понял. Тебе ещё работать и работать, чтобы такое качали и играли по своему желанию большинство.
@ilyaplekhanov2373
@ilyaplekhanov2373 2 года назад
Почему все ru блогеры юнити читают английские слова не по правилам всегда?)
@NightTrainCode
@NightTrainCode 2 года назад
Ват а ю токин эбаут?)
@ilyaplekhanov2373
@ilyaplekhanov2373 2 года назад
@@NightTrainCode геймАбджект и еще что то было такое)
Далее
Be CAREFUL with Scriptable Objects!
8:27
Просмотров 79 тыс.
Почему все забыли «Ранго»
21:37
Просмотров 252 тыс.