Звичайно. Заголовок ні на що не натякає. Так як це питання дуже відносне і часто воно навіть не викликає великих проблем. Чи ні?
За три останні роки на
Steam вийшло понад 50 000 нових проєктів, що робить ринок одним з найдинамічніших та найперенасиченіших у світі. І тут постає питання: чи буде ваша гра достатньо унікальною? Чи не загубиться вона серед десятків тисяч інших схожих проєктів?
Багато хто з вас вже стикався з цією ситуацією:
хочете зробити гру мрії — унікальну, особливу, свою. А виявляється, що таких вже є сотні (хіба що ви один з тих відважних, хто вважає, що все інше "кал" а ваша ідея 100% залетить?) (P.S: Автор каналу один з таких))
Це один із найпопулярніших жанрів серед інді-розробників… і один із найбільш перенасичених.
• 2D-платформерів на Steam вже майже
9 300.• 3D-платформерів близько
6 000.Тож коли говоримо про «зроблю платформер, бо це просто» — варто пам’ятати: іноді не складність механіки є проблемою, а кількість інших людей, які зробили те саме.
У
700 000 мобільних ігор (Google Play + App Store) [Джерело]Якби моєю ціллю було прибрати вас, як конкурентів (поганий жарт, правда?) — я би сказав: Звичайно так!
Але дуже добре, що це не так! Взагалі все що я сказав вище - це лише статистика у якої є багато "але".
Для прикладу:
• Величезна кількість ігор виходить "по приколу". Буквально зроблених за вечір, без мети стати успішними! І такі релізи теж потрапляють у статистику, створюючи зайвий шум.
• Також значна частина проєктів це відверті клони. Одна механіка копіюється сотнями разів, і відмінностей між іграми майже немає. А багато проєктів не мають ні якості, ні базового опрацювання.
Є навіть такі «шедеври», як Furry Love (тут і говорити нема про що...), але формально це теж повноцінний реліз у Steam. І таких нюансів безліч!
‼️ Але тоді виходить що більш ніж 50% поста це повна фігня?
І знову ні. Багато ігор справді хороші, якісні й цікаві, але вони просто не залетіли. Причин може бути безліч: від малого бюджету на маркетинг (не завжди основний чинник) до тої ж конкуренції.
Тому основна суть усієї цієї статистики не лякати вас числами, а показати, що є аспекти, на які все ж варто інколи зважати.
Якщо ви справді хочете зробити свою гру — робіть те, що можете назвати унікальним хоча б у чомусь: механікою, подачею, стилем, світом.
Досліджуйте, що робить гру захопливою, чому гравці залишаються, що чіпляє увагу з перших секунд. Ну і не забувайте за маркетинг...
І тоді, сподіваюсь, у вас все вийде
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥14🔥4❤3🥰2👍1
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥21👍6🔥2❤1
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥13❤🔥5❤4👍1
Мультшейдинг — це популярний стиль візуалізації, що надає 3D-моделям вигляд намальованої графіки: різкі тіні, яскраві кольорові переходи та контурні лінії.
У цьому матеріалі розглядаються три повноцінні способи створення Toon-шейдерів:
• Shader Graph — мультяшний шейдер, побудований на візуальних вузлах.
• HLSL Toon Shader — кастомний шейдер з визначенням країв і контурів.
• URP-сумісний Toon Shader — класичний шейдинг з контурами, витягнутими за допомогою модифікації геометрії.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12👏2⚡1
У свіжому виступі The Unity Engine Roadmap | Unite 2025 розповіли, куди рухається рушій:
Стабільніші оновлення, суттєві апдейти графіки та продуктивності, покращений UI, розширена підтримка платформ і нові інструменти, які прискорюють роботу розробників.
Ну що, коли вже Unity 7?
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥13❤🔥2❤2⚡1😁1
🔁 Перестань мучити свій фреймрейт: переходь на Object Pooling
Як думаєте, коли ви граєте в шутери чи патрони кожен раз спавняться з нуля? Ха-ха, звичайно що ні! Якщо тільки розробники не забули про оптимізацію :)
У реальних проєктах майже ніхто не буде щоразу викликати
❓ Чому Instantiate і Destroy — це погана ідея, коли об’єктів багато?
1)
Створення нового об’єкта — це робота з пам’яттю, алокація, ініціалізація компонентів, виклик
А тепер уявіть, що таких об’єктів сотні за секунду. Привіт мікрофрізи🤯
2)
Коли GC таки спрацьовує гра може на мить «зависнути», і ви отримаєте мікрофризи. (Здається це так працює)
🔧 То що ж робить Object Pooling?
Object Pooling — це хитрий (і дуже простий) спосіб підготувати всі об’єкти заздалегідь, ще ДО того, як вони знадобляться у грі.
Замість того, щоб створювати та видаляти об'єкти, ви створюєте їх один раз, а потім просто вмикаєте та вимикаєте, коли потрібно.
⚠️ Але думаю, уважні читачі вже здогадалися і про головний мінус цього підходу:
• Не можна створювати надто багато об’єктів у пулі, інакше ви просто перевантажите пам’ять (але зазвичай це не проблема)
• Об’єкти потрібно “обнуляти” перед поверненням у пул. Після використання приводьте об’єкт до початкового стану: очистіть змінні, зупиніть корутини, відпишіть від подій, скиньте
Інакше старі стани «перетечуть» у наступні спавни та створять важкоуловимі баги.
До речі, підготував для вас вже готовий проєкт. Тому кому треба - користуйтесь😉
✈️ Gamedev | [Проєкт] | #оптимізація #уроки #objectpooling #память
Як думаєте, коли ви граєте в шутери чи патрони кожен раз спавняться з нуля? Ха-ха, звичайно що ні! Якщо тільки розробники не забули про оптимізацію :)
У реальних проєктах майже ніхто не буде щоразу викликати
Instantiate для кожної кулі. І ось чому:1)
Instantiate — це важка операціяСтворення нового об’єкта — це робота з пам’яттю, алокація, ініціалізація компонентів, виклик
Awake/Start і всякі інші розумні слова. Це НЕ безкоштовно.А тепер уявіть, що таких об’єктів сотні за секунду. Привіт мікрофрізи
2)
Destroy — не знищує відразуDestroy() ставить GameObject у чергу на видалення. Destroy сам по собі не обов’язково одразу запускає .NET GC, але постійні створення/видалення роблять більше сміття і підвищують ймовірність запуску збірки сміття. Коли GC таки спрацьовує гра може на мить «зависнути», і ви отримаєте мікрофризи. (Здається це так працює)
🔧 То що ж робить Object Pooling?
Object Pooling — це хитрий (і дуже простий) спосіб підготувати всі об’єкти заздалегідь, ще ДО того, як вони знадобляться у грі.
Замість того, щоб створювати та видаляти об'єкти, ви створюєте їх один раз, а потім просто вмикаєте та вимикаєте, коли потрібно.
• Не можна створювати надто багато об’єктів у пулі, інакше ви просто перевантажите пам’ять (але зазвичай це не проблема)
• Об’єкти потрібно “обнуляти” перед поверненням у пул. Після використання приводьте об’єкт до початкового стану: очистіть змінні, зупиніть корутини, відпишіть від подій, скиньте
Rigidbody.velocity/rotation, вимкніть таймери та ефекти. Інакше старі стани «перетечуть» у наступні спавни та створять важкоуловимі баги.
До речі, підготував для вас вже готовий проєкт. Тому кому треба - користуйтесь
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥13👍3🔥3😁2❤1
Всі пам'ятають цю новину? Якщо ні, то мені варто задуматись чи не на зря я роблю пости
А якщо серйозно, то відносно недавно Electronic Arts продали інвесторському консорціуму, до складу якого входять Державний інвестиційний фонд Саудівської Аравії і ще декілька компаній.
В межах цієї угоди EA оцінили приблизно у
$55 млрд. Однак зараз з’ясувалося, що у PIF проблеми — спадковий принц Мухаммед бін Салман останнім часом використовував фонд не дуже ефективно.За даними The New York Times:
"...фонд після «десятиліття дорогих і не завжди успішних інвестицій» фактично втратив вільні кошти для нових проєктів"
Причина? Амбітні, але фінансово провальні, забаганки принца.
• мережа кав’ярень, яка планує експортувати каву в Австрію;
• круїзна компанія з одним кораблем;
• стартап електромобілів, який за три роки не випустив жодного авто.
Ну і як у ситуації з багатьма мільярдерами, усі активи зазвичай - у "неліквідних та проблемних (а можливо і не дуже) активах."
Офіційно речник фонду каже інше: мовляв,
$60 млрд кешу є, все під контролем. Але закулісно відбувається масштабна реструктуризація, і все це під особистим наглядом наслідного принца.І тут найцікавіше:
У репортажі згадується, що принц Мухаммед — "затятий геймер", і покупка EA може бути не лише інвестицією, а й… ну, скажімо так, дуже дорогим апґрейдом бібліотеки
Фонд каже, що це стратегічний вклад і що він «подвоїть свою вартість у майбутньому». Але джерела всередині фонду натякають: таймінг покупки виглядає дуже дивно на фоні фінансових проблем.
❓ Хоча вже були дискусії на цю тему, але що ви думаєте про цю ситуацію?
Please open Telegram to view this post
VIEW IN TELEGRAM
🤣15👍3😁2❤1
Всім привіт 👋
📌 Ось і ваша любима рубрика: щосуботи ділимося своїми іграми, артами, скріншотами чи результатами роботи. Це може бути як концепт, так і вже готовий проєкт.
Можете кидати і старі проєкти)
Ну що, хто покаже перший скрін?🔥
✈️ Gamedev | #ScreenshotSaturday
📌 Ось і ваша любима рубрика: щосуботи ділимося своїми іграми, артами, скріншотами чи результатами роботи. Це може бути як концепт, так і вже готовий проєкт.
Можете кидати і старі проєкти)
Ну що, хто покаже перший скрін?
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7🎉4❤2👍2
📌 Підсумок публікацій за тиждень:
Ще один тиждень пролетів. І ось підсумок!😁
🎓 Навчальні матеріали:
• 👁 Проблема з перешкодами для камери?
• 🔁 Перестань мучити свій фреймрейт: переходь на Object Pooling
📰 Новини та цікавe:
•📱 Що ви думаєте про перенасичення ринку?
•📱 Майбутнє Unity!
•❓ EA купили а грошей більше нема? PIF Саудівської Аравії на межі кризи!
🔨Корисне:
•😎 Мультшейдинг (Toon Shading): три підходи для рендера
•🔥 Шикраний бар'єр
Не забуваємо, що у першому закріпленому повідомленні є вся потрібна інформація. Що
Та також, переглядайте та діліться своїми результатами у SCREENSHOT SATURDAY!
✈️ Gamedev | [Підтримати канал тут]
Ще один тиждень пролетів. І ось підсумок!😁
🎓 Навчальні матеріали:
• 👁 Проблема з перешкодами для камери?
• 🔁 Перестань мучити свій фреймрейт: переходь на Object Pooling
📰 Новини та цікавe:
•
•
•
🔨Корисне:
•
•
Не забуваємо, що у першому закріпленому повідомленні є вся потрібна інформація. Що
# тут не просто так!Та також, переглядайте та діліться своїми результатами у SCREENSHOT SATURDAY!
Please open Telegram to view this post
VIEW IN TELEGRAM
😁10👍4🔥2❤1❤🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
Всім привіт, народ. Думали я забув про вас?) А ні!
Тиждень почався доволі насичено, тому вчора не було поста. Сильно перепрошую😅
Тому тримайте прикольну реалізацію прямої взаємодії з ігровим світом, без HUD і без «Натисни X, щоб взаємодіяти». Уся інформація та управління заховані в оточення, завдяки чому сцена відчувається максимально живою.
Можливо такий варіант реалізації може бути проблематичним (безпосередньо для гравця), але виглядає суперово!🔥
✈️ Gamedev | #натхнення
Тиждень почався доволі насичено, тому вчора не було поста. Сильно перепрошую
Тому тримайте прикольну реалізацію прямої взаємодії з ігровим світом, без HUD і без «Натисни X, щоб взаємодіяти». Уся інформація та управління заховані в оточення, завдяки чому сцена відчувається максимально живою.
Можливо такий варіант реалізації може бути проблематичним (безпосередньо для гравця), але виглядає суперово!
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥17👍4⚡2❤1🔥1
За даними з VGI, інді-ігри з січня по вересень 2024 року принесли на Steam близько
$4 млрд.Найтямущі доходи генерували ігри жанрів виживання, рольових / екшн-RPG, симуляторів, а також проєкти з кооперативним мультиплеєром і хорор-ігри.
Виживання (Survival)
Наприклад, гра Rust (Facepunch Studios, які починали свій шлях як інді-студія) розійшлася накладом понад 20 мільйонів копій та принесла понад
$2 мільярди доходу з моменту релізуПодібним успіхом славляться інші проєкти: Valheim (Iron Gate) досягла
~12 млн продажів у перші два роки, а Palworld (Pocketpair) продала ті ж 12 млн копій на Steam за два тижні з моменту релізу, ставши одночасно найпопулярнішою грою 2024 року.Рольові та Action-RPG-ігри
На вершині жанру рольових/екшн-RPG – великі хіти, що починалися як інді-проєкти. Black Myth: Wukong (Game Science) – пригодницьке екшн-RPG, що за два тижні зібрало понад
$852 млн виручки на Steam (17.8 млн проданих копій). Також Dead Cells (Motion Twin) – інді-рогалайк з елементами екшну, розійшовся 10 млн копіями до 2023 року.
Жахи (Horror)
Тут мали бути кооперативні ігри, але я не хотів, щоб пост був занадто великим, а враховуючи, що я ще і дуже люблю хоррори то гріх не згадати
Phasmophobia (Kinetic Games) – кооперативний хорор про полювання на привидів – розійшовся майже 22 млн копій на PC і консолях, забезпечивши приблизно
$300–330 млн доходу (за $15 за копію). У 2024 році він п’ять тижнів поспіль очолював чарти Steam за кількістю гравців. Інші інді-хорори (наприклад, багатокористувацька Survival-Horror The Blackout Club, Content Warning тощо) також демонструють помітні продажі.
Усі ці надуспішні проєкти починали свій шлях як інді-ігри, створені невеликими студіями або командами-ентузіастами. Попри відносно обмежені ресурси, вони змогли завоювати величезну аудиторію та принести сотні мільйонів доларів доходу, підтверджуючи, що інді-ігри не лише можуть конкурувати з AAA-проєктами, а й задавати тренди індустрії.
В результаті інді-сцена сьогодні є потужним генератором хітів, здатних приносити мільярди доларів, і це дійсно круто!
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥11🔥4🤪2👍1😍1
This media is not supported in your browser
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥14🔥4⚡2👍1
Я настільки люблю Unity, що мені ніколи не набридне робити пости по типу цього
Unity випустили перший LTS-реліз після
6.0 і він заряджений продуктивністю, стабільністю та крутим функціоналом (кожен раз одне й те саме. Здається я це вже десь чув)Якщо говорити за нові оновлення:
• Platform Toolkit
Єдиний API для роботи з акаунтами, сейвами, досягненнями та контролерами на всіх платформах:
Android, iOS, Windows (GDK/Steam), Xbox One/Series, PS5, Nintendo Switch і Nintendo Switch 2.
• Android XR
Нові можливості: Face Tracking, Object Trackables, Dynamic Resolution.
• Доступність
Нативна підтримка screen reader на Windows, macOS, Android та iOS.
Unity 6.3 пройшла Production Verification (тестування нової версії на реальних комерційних іграх, а не на демосценах) на реальних іграх.
Говорять, що результати видно одразу:
-30% регресій (щоб це не означало), -22% багів від користувачів, швидкий імпорт, Play Mode та збірка.ТАКОЖ AssetBundle TypeTrees отримали серйозні оптимізації, які різко зменшують використання пам’яті та пришвидшують збірки. Реальні проєкти показали до
−99% споживання памʼяті та скорочення часу збірки в кілька разів (Це справжні цифри?)Ще без змін не залишився і PROFILER: Новий Highlights-модуль - швидке резюме продуктивності в один клік. Це означає, що Profiler тепер сам виділяє ключові показники й проблемні місця в проєкті — без потреби копатися в сотнях графіків.
🛠 Графіка, аудіо та редактор
У графіці теж чимало апдейтів: оптимізований Bloom для мобільних, щільніші лайтмапи через xAtlas, новий Sprite Atlas Analyzer та можливість рендерити 3D як 2D.
• Shader Graph отримав кастомне освітлення, терайн-шейдери та новий Template Browser.
• В аудіо з’явився Scriptable Audio Pipeline для гнучкого й продуктивного оброблення звуку.
А в редакторі тепер можна налаштовувати головну панель інструментів під себе, пошук працює значно швидше й точніше, а у VFX Graph додали нові шаблони та GPU-події, які спрощують створення складних візуальних ефектів і підвищують їх продуктивність.
Multiplayer та мережеві оновлення:
Unity 6.3 LTS додає підтримку HTTP/2 за замовчуванням, що знижує навантаження на сервер і економить ресурси CPU на пристроях гравців. Крім того, у Netcode for Entities з’явилася Host Migration через Unity Gaming Services (UGS), яка дозволяє продовжувати гру навіть після втрати хоста, забезпечуючи більш стабільний мультиплеєрний досвід.
Як вам такі оновлення? Діліться думками у коментарях
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥10🔥4⚡2❤1👍1
Короче, згадав одну ситуацію, з якою стикнувся відносно недавно і вирішив з вами поділитися.
Треба було відділити (напевно це слово буде найбільш влучним?) деякі об'єкти від пост-обробки. На жаль у Unity немає цієї магічної і класної функції як “Exclude From Post Processing”.
Тому потрібно використовувати неординарні методи.
Постобробка застосовується до всього, що намалювала камера. Якщо об’єкт з’явився в кадрі ефект впливає на нього, хочеш ти того чи ні.
Тому на допомогу приходить друга камера!
Але ви можете подумати, що це якась дурня і є набагато простіший і кращий спосіб ніж рендерити всі об'єкти двічі. Чесно кажучи, це було першим, що я подумав дізнавшись про цей спосіб
Насправді не обов'язково робити вашу гру занадто важкою для оптимізації, адже у камері є таке чудове налаштування як: Culling Mask. Але все по порядку.
📋 Реалізація
1. Створюєш новий Layer, наприклад:
NoPostProcessПереносиш туди всі об’єкти, які не мають бути під постобробкою (UI, 3D-моделі, світло — що завгодно).
2. Налаштовуєш головну камеру (Camera_Main)
• Render Type: Base
• Culling Mask: усе крім
NoPostProcess• Post-processing: ON
У Base камері → вкладка Stacking → додати Overlay камеру (другорядну). Ця камера малює основну сцену та накладає постобробку.
3. Параметри Overlay Camera
• Render Type: Overlay
• Culling Mask: тільки ті об’єкти, які не повинні проходити постобробку
• Post-processing: OFF
Ставите цю камеру як дочірню в головну і позицію 0 0 0
Готово! Тепер Unity малює спочатку Base Camera з постобробкою, а потім Overlay Camera без ефектів, тому ваші об’єкти залишаються “чистими”.
❗️Маленьке уточнення. Якщо не помиляюсь, це працює так з URP, але трохи інакше, ніж у Built-in Render Pipeline: у Built-in не треба додавати другу камеру у Stack, порядок рендера контролюється лише через Depth і Culling Mask.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤10🔥4👍2🥰1
Всім привіт 👋
Ніч була тяжка.. Сподіваюсь у всіх все добре!
📌 А щодо рубрики: щосуботи ділимося своїми іграми, артами, скріншотами чи результатами роботи. Це може бути як концепт, так і вже готовий проєкт.
Можете кидати і старі проєкти)
Ну що, хто покаже перший скрін?🔥
✈️ Gamedev | #ScreenshotSaturday
Ніч була тяжка.. Сподіваюсь у всіх все добре!
📌 А щодо рубрики: щосуботи ділимося своїми іграми, артами, скріншотами чи результатами роботи. Це може бути як концепт, так і вже готовий проєкт.
Можете кидати і старі проєкти)
Ну що, хто покаже перший скрін?
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9❤🔥4⚡1🥰1
📌 Підсумок публікацій за тиждень:
Ще один тиждень пролетів. І ось підсумок!😁
🎓 Навчальні матеріали:
•🗿 Як "забрати" об’єкти з Post Processing
📰 Новини та цікавe:
•🔥 Прекрасна реалізація взаємодії гравця без HUD і лишнього!
•📱 Ці інді-жанри приносять сотні мільйонів...
•📱 Unity 6.3 LTS. Що нас чекає?
🔨Корисне:
•🎆 Швидко генеруйте VFX-текстури
Не забуваємо, що у першому закріпленому повідомленні є вся потрібна інформація. Що
Та також, переглядайте та діліться своїми результатами у SCREENSHOT SATURDAY!
✈️ Gamedev | [Підтримати канал тут]
Ще один тиждень пролетів. І ось підсумок!😁
🎓 Навчальні матеріали:
•
📰 Новини та цікавe:
•
•
•
🔨Корисне:
•
Не забуваємо, що у першому закріпленому повідомленні є вся потрібна інформація. Що
# тут не просто так!Та також, переглядайте та діліться своїми результатами у SCREENSHOT SATURDAY!
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥9😁6🔥2🥰1
Багато з нас працюють в Unity, хтось в Unreal, хтось на інших рушіях.
За яким критерієм саме ви обрали свій рушій?
Чи це була зручність роботи, документація, візуальна складність, продуктивність, графіка, чи, можливо, звичка або порада знайомих?
І САМЕ ЦІКАВЕ: Що би ви порадили людині, яка тільки починає свій шлях (Порада стосовно рушія, але якщо бажаєте, то можете і в загальному сприйняти це питання
Цікаво почути вашу думку в коментарях 👇
Please open Telegram to view this post
VIEW IN TELEGRAM
😁9🔥5🤔5🥰1
This media is not supported in your browser
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12👍5⚡3❤1
Ось ми з вами говоримо часто про таку річ як Generic, але можливо хтось до кінця, або взагалі, не знає що це таке.
Generics у C# – це можливість оголошувати класи, методи, інтерфейси тощо з узагальненими параметрами типу. Замість конкретного типу (наприклад
int чи string) ви вказуєте параметр T, який задасться під час використання.Наприклад, .NET забезпечує багато generic-класів для колекцій (
List<T>, Dictionary<TKey,TValue> тощо), адже вони можуть зберігати будь-який тип без втрати безпеки типів* (гарантія, що змінні та об’єкти у програмі працюють тільки з тими типами даних, для яких вони призначені, і не можуть бути випадково використані неправильно).Щоб оголосити узагальнений клас або метод, використовують синтаксис з кутовими дужками
<T>. Наприклад, узагальнений клас може виглядати так:public class GenericList<T>
{
private List<T> innerList = new List<T>();
public void Add(T item) { innerList.Add(item); }
public T Get(int index) { return innerList[index]; }
}
У цьому прикладі
T – параметр типу, він може бути будь-яким (вкладений у клас GenericList<T>). Коли ви створюєте список, передаєте конкретний тип: var intList = new GenericList<int>(); intList.Add(5);.Аналогічно можна писати generic-методи:
public void Swap<T>(ref T a, ref T b)
{
T temp = a; a = b; b = temp;
}
Тут метод
Swap<T> може поміняти місцями будь-які два об’єкти одного типу. Виклик: Swap<int>(ref x, ref y).Якщо коротко то використовувати можна багато як. У тих же інтерфейсах і т.п. Але є ще одна цікава деталь!
Параметру
T можна встановлювати обмеження (where-умови), щоб звузити, яким типом він може бути. Найпоширеніші обмеження:•
where T : class – T повинен бути "посилальним" типом (неможна передати int тощо).•
where T : struct – T повинен бути типом-значення (не клас).•
where T : notnull – у контексті nullable вимоги – обмежує ненульовані типи (C# 8+).Думаю, логіка зрозуміла.
Але якщо це канал про розробку ігор, то чому б і не згадати за практичне використання у нашому любимому Unity
Unity Scripting API містить багато generic-методів у своїй бібліотеці. Наприклад,
GetComponent<T>() – це generic-метод у GameObject/Component, який повертає компонент типу T (де T : Component)Використання:
Rigidbody rb = gameObject.GetComponent<Rigidbody>();
Цей виклик стає безпечним і не вимагає явного приведення типу.
Ще один приклад –
AddComponent<T>() – generic-метод GameObject.AddComponent<T>(), який додає компонент типу T до ігрового об’єкта. Сигнатура: public T AddComponent<T>()SphereCollider sc = gameObject.AddComponent<SphereCollider>();
Також гріх не згадати: UnityEvent<T> та Системи Entities (ECS).
Ну і базові методи по типу
FindObjectOfType<T>() / FindObjectsOfType<T>(), GetComponentInChildren<T>(), GetComponentInParent<T>(). Тобто, якщо ви не знали точно, що таке Generic, то ви 100% з ним стикались.
[Джерело 1] / [Джерело 2] / [Джерело 3].
На жаль, саркастичного і влучного жарту не придумав. Не сьогодні...
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥15👍5⚡1👎1🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
⛓️💥 Прискорте гру за допомогою об’єднання мешів
Якщо ви збираєте сцени з модульних асетів, підвищити продуктивність можна, об’єднавши їх в один меш за допомогою
✈️ Gamedev | [Документація] | #оптимізація #mesh #GameOptimization
Якщо ви збираєте сцени з модульних асетів, підвищити продуктивність можна, об’єднавши їх в один меш за допомогою
Mesh.CombineMeshesPlease open Telegram to view this post
VIEW IN TELEGRAM
⚡15🔥8❤2❤🔥1👍1
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥18❤4👍3❤🔥2🥰1