🔥 MonoCache 2.0 уже лежит на GitHub, он немного отличается от версии из видео, но в релизах есть и старая. Рекомендую сразу использовать версию 2.0 и прочитать короткую и понятную документацию) github.com/MeeXaSiK/MonoCache
Ты в своём MonoCache 2.0 за каким то хером прямо в GlobalUpdate логику покраски текста консоли хранишь и в Singleton у тебя where TSingleton : MonoBehaviour хотя ты форсишь MonoCache... это какой то рофл? Может это надо пофиксить?
@@lewaplay Покраску текста можно вынести в другой класс, не спорю) А насчёт синглтона var instance = Singleton.Instance для лохов?) И неважно от чего наследуешься
Самое то, перед дембелем, впитать новых знаний, чтобы в июле обновить все старые проекты, дав им оптимизации и новой жизни, а за одно и в новых не делать старых ошибок
Стоило бы использовать HashSet вместо List для пула объектов. Во первых - однозначное отсутствие копий, во вторых - вычислительная сложность удаления объекта - O(1), в отличие от листа, который будет перестраивать внутренний массив.
Однако итерация по HashSet и Dictionary медленнее чем у списка (не так чтобы сильно, но все же), я тоже так сначала думал что хешсет хорошее решение, но отказался. Плюс есть вопросы к скоростям for(i= ) и foreach. Первые два вроде как не работают через for. Буду рад если поправишь!
Ну... Вроде структура данных у HashSet располагает элементы не линейно, друг за другом, как в List, так? Ну и вроде как итерация по такому линейному прямому массиву как в List должна быть быстрее, правильно? Ну там, кеш CPU, все дела. Плюс Span - хорошая вещь для быстрой итерации. С обычным массивом или List должна работать, а вот сможет ли она работать с структурой данных такой как хеш таблица... Очень сомневаюсь.
Когда закидываю скрипт Global Update в пустышку выдаёт ошибку "Can't add script component 'Global Update' because the script class cannot be found. Make sure that there are no compile errors and that the file name and class name match. "
Спасибо) Идеи для видосов есть, в ближайшем будущем: - Больше уроков по оптимизации - Фишки в C# - Обзор моего воксельного лоу-поли шутана про Россию - Другие крутые плюшки по Unity (как сделать персонажа, селектор оружия, стрельба, как сделать 3д модель человека по фотографии, анимация и др.) и тонкости
@@NightTrainCode О, крутые темки! Я начинающий, мне это интересно) сейчас вот задумался об оптимизации, так как дофига объектов на карте будет, тысячи тайлов, юниты и тд. По с# тоже интересно, в частности как в идеале делать юниты и здания, наследниками от общего класса, нужны ли там интерфейсы и тд, я пока не особо шарю. Вобщем любому материалу буду рад, твори!))
@@Андрей-в7и6ь Для твоей игры идеально подойдёт мой видос, если юнитам нужны апдейты Ещё в юнити есть Dynamic Batching, включается вроде в "Player Preferences -> Player", после активации нужно на каждом материале включить "Enable GPU instancing" Ещё поищи в Ютубе про Occlusion Culling в юнити, про него тоже видос планирую сделать Мог бы ещё про свет рассказать, но там слишком долго, поэтому вариант один - ждать мой видос 😹
@@NightTrainCode да, по апдейтам взял на заметку реализую) слышал про эту тему, но ты хорошо объяснил, без лишней воды, спасибо! по occlusion culling у блогера с забавным ником Владимир свет Игродельский узнал)) толково рассказывает, старается подробно и чтоб начинающим понятно было. Я уже попробовал его применять но в сравнении с тупой деактивацией объектов на определённом расстоянии от камеры кулинг вроде бы медленнее, хотя надо будет ещё позже проверить.. Batching ущё не крутил, спасибо за наводку) подписался, с удовольствием посмотрю твои следующие видосы!
Потому что ты увидишь прирост фпс только тогда, когда у тебя на сцене будет очень много таких объектов с логикой в апдейте, как у автора. Когда их мало ты вообще ничего не заметишь.
@@NightTrainCode я тут на юнити делал шутер но я незнаю как сделать стрельбу из автомата можешь снят тутор как сделать стрельбу просто я поискал на ютубе но все видосы старые и половина скриптов не работают пожалуйсто)
@@NightTrainCode чем же она лучше? Накидает кто-то потом на такие монобехи анимаций, короутин. Захочет запаузить объект, перестав вызывать Tick , и все сломается
я не советую делать то что на видео, я тестировал разные нагрузки, не только через профайлер. вышло что юнити справляется с индивидуальными апдейтами на обьектах лучше , чем если прогонять это все через листы или арреи каждый фрейм. может сейчас ситуация другая с юнити дотс, но не с такой реализацией 100%.
@@bq_g9369согласен, эта реализация не чуть не повысит производительность, так как сама жрет дополнительную память на обслуживания самой себя с кучей экземпляров которые создаются и уничтожаются.
Небольшой прирост фпс будет, если на сцене куча апдейтов Здесь и свои нюансы есть, например, если важен порядок выполнения апдейтов, то с этим способом, возможно, будут проблемы)
Сомнительное решение на самом деле. Доп-наследование, а прирост не такой уж и существенный, а функция апдейт используется довольно редко. Может стоит поискать какое-то более производительное решение, раз уж прям нужно отрисовать тучу чего-либо? Например, партикли или шейдера.
Можно, только зачем? Ты же не будешь среди геймплея дёргать 40 тысяч стартов из-за которых появятся статтеры, а в начале сцены один кадр длиной даже 200 мс никакой погоды не сделает
@@NightTrainCode он их скрыл из общего списка видосов, т.к. переориентировал канал на свою игу, но их все еще можно найти если зайти к нему в плейлисты. ru-vid.complaylists
Бред полнейший, закрытая реализация Update именно так и устроено, одним событием вызывается все. Кешировать Update накера надо? Чтобы использовать позже? Прошлые кадры для отображение куба разве для этого :((( не проще ли сделать спрайт и отображать 1000-раз быстрее.
@@NightTrainCode я понимаю что канал не для детей в плане контента, но они могут быть рядом когда я смотрю видосы, но это первый видос с матом на этом канале) надеюсь на "культурные" ролики в дальнейшем)
И какой смысл? Мне надо из 30 сделать 100 Нахуя мне 3 фпс? Делать гораздо сложнее А смысла почти нет А чё делать с Fixed Update? У меня на нем вообще вся игра работает
@@EndMan нуууу.. я люблю людей, но не тех кто причиняют другим вред на прямую или косвенно, а этот контент вреден, как и практика синглтона в большой системе
@@ivankramarenkoиспользование одного апдейта удобно хотя бы потому, что можно отключить все апдейты из одного места, тем самым поставив игру на паузу, не трогая тайм скейл. Плюс можно отключать апдейт самому себе, когда он не нужен, а потом снова включать. Так что один апдейт это скорее хорошая практика, чем наоборот. Кстати, а где ты в этом видео сингелтон увидел?)
Это нормально. Насколько помню, это процессор ждёт видеокарту, когда он подготовил кадры (вроде бы когда подготових их больше, чем видеокарта может отрисовать), а она их отрисовывает.