![Night Train Code](/img/default-banner.jpg)
- 19
- 267 741
Night Train Code
Russia
Приєднався 4 сер 2020
• 🎮 Разработка игр на Unity
• 🖤 Программирование на C#
Night Train Code [NTC]
• 🖤 Программирование на C#
Night Train Code [NTC]
Как сделать ЛЮБУЮ СТРЕЛЬБУ в UNITY? На примере РЕАЛЬНЫХ игр
Как сделать любую атаку или стрельбу в вашей игре на Unity? Создание шутера в 3D или 2D. Разбираем все основные типы стрельбы в Unity, такие как: Raycast (Hitscan), Overlap (Melee, Explosion), Projectile.
Постарался рассказать про все максимально подробно, а также про несколько полезных фишек и нюансов, чтобы создание различных атак в вашей игре ограничивалось лишь вашей фантазией! :)
• Материалы из видео есть в моём Telegram канале:
t.me/nighttraincode/147
• Страница форума с пояснением почему None always true:
stackoverflow.com/questions/15436616/hasflags-always-returns-true-for-none-0-value-in-enum
• Мои линки:
• 🖤 Telegram Канал: t.me/nighttraincode
• 🖤 Telegram Чат: t.me/ntc_chat
• 🖤 GitHub: github.com/MeeXaSiK
• 🖤 VK: nighttraincode
• 🖤 Instagram: the.meps_
• Таймлайн:
00:00 ► Вступление
00:30 ► Какие есть типы стрельбы / атаки?
01:59 ► Как сделать Raycast атаку?
08:39 ► RaycastAll и RaycastNonAlloc
09:51 ► BoxCast, CapsuleCast, SphereCast
10:39 ► Rigidbody SweepTest (MeshCast)
11:06 ► Дульная вспышка и звук при стрельбе
12:42 ► Как вызвать атаку через Input?
13:47 ► Атака по клику на объект
14:20 ► Как сделать Overlap атаку?
22:36 ► Быстрая Overlap атака
24:45 ► Как сделать Projectile атаку?
28:15 ► Паттерн Шаблонный метод
29:00 ► Атрибуты базового класса Projectile
29:37 ► Реализации класса Projectile
31:01 ► Projectile Dispose Timer
31:50 ► Как сделать сквозной снаряд Projectile?
37:16 ► Enum Flags
41:04 ► Enum Flags + Naughty Attributes
43:21 ► Collision Detection Mode
43:44 ► Projectile и ObjectPool
44:39 ► Не забывайте про LayerMask
45:02 ► Как сделать автоатаку?
45:48 ► Как произвести атаку с задержкой?
46:30 ► Как сделать атаку в 2D игре?
46:50 ► Итог
Постарался рассказать про все максимально подробно, а также про несколько полезных фишек и нюансов, чтобы создание различных атак в вашей игре ограничивалось лишь вашей фантазией! :)
• Материалы из видео есть в моём Telegram канале:
t.me/nighttraincode/147
• Страница форума с пояснением почему None always true:
stackoverflow.com/questions/15436616/hasflags-always-returns-true-for-none-0-value-in-enum
• Мои линки:
• 🖤 Telegram Канал: t.me/nighttraincode
• 🖤 Telegram Чат: t.me/ntc_chat
• 🖤 GitHub: github.com/MeeXaSiK
• 🖤 VK: nighttraincode
• 🖤 Instagram: the.meps_
• Таймлайн:
00:00 ► Вступление
00:30 ► Какие есть типы стрельбы / атаки?
01:59 ► Как сделать Raycast атаку?
08:39 ► RaycastAll и RaycastNonAlloc
09:51 ► BoxCast, CapsuleCast, SphereCast
10:39 ► Rigidbody SweepTest (MeshCast)
11:06 ► Дульная вспышка и звук при стрельбе
12:42 ► Как вызвать атаку через Input?
13:47 ► Атака по клику на объект
14:20 ► Как сделать Overlap атаку?
22:36 ► Быстрая Overlap атака
24:45 ► Как сделать Projectile атаку?
28:15 ► Паттерн Шаблонный метод
29:00 ► Атрибуты базового класса Projectile
29:37 ► Реализации класса Projectile
31:01 ► Projectile Dispose Timer
31:50 ► Как сделать сквозной снаряд Projectile?
37:16 ► Enum Flags
41:04 ► Enum Flags + Naughty Attributes
43:21 ► Collision Detection Mode
43:44 ► Projectile и ObjectPool
44:39 ► Не забывайте про LayerMask
45:02 ► Как сделать автоатаку?
45:48 ► Как произвести атаку с задержкой?
46:30 ► Как сделать атаку в 2D игре?
46:50 ► Итог
Переглядів: 15 185
Відео
Приятная стрельба в Unity. Отдача и другие эффекты
Переглядів 8 тис.Рік тому
Сегодня поговорим о том, как сделать приятную стрельбу в Unity, добавив отдачу и взмах оружия • Сайт с наглядными функциями плавности: easings.net/ru • Материалы из урока: drive.google.com/drive/folders/1lb72K-QYw7wBS4MlkRjUHgBx-Tr1Sb-A?usp=sharing • DOTween: assetstore.unity.com/packages/tools/animation/dotween-hotween-v2-27676 • MEATGRINDER в Steam: store.steampowered.com/app/1968710/MEATGRIN...
Освобождаем место на диске в Unity. Символьная ссылка, Library и другое
Переглядів 4 тис.Рік тому
Что делать, если файлы Unity занимают много места на системном накопителе, а проекты и вовсе разрастаются до гигантских размеров? Как освободить место в Unity? Об этом поговорим в этом видео!) • Подробнее про символические ссылки: ru.wikipedia.org/wiki/Символическая_ссылка • 🖤 Telegram Канал: t.me/nighttraincode • 🖤 Telegram Чат: t.me/ntc_chat • 🖤 GitHub: github.com/MeeXaSiK • 🖤 VK: nigh...
Всё про рэгдоллы в Unity. Как исправить дрожание и артефакты?
Переглядів 4,7 тис.Рік тому
Что такое рэгдоллы? Как их создать в Unity? Как исправить дрожение и артефакты? Привет, пассажиры, про всё это мы поговорим в этом видео!) Ragdoll Helper: assetstore.unity.com/packages/tools/modeling/ragdoll-helper-49288 Материалы из видео: t.me/nighttraincode/120 • 🖤 GitHub: github.com/MeeXaSiK • 🖤 VK: nighttraincode • 🖤 Telegram: t.me/nighttraincode • 🖤 Instagram: the.mep...
Оптимизация игры на Unity. Физика
Переглядів 10 тис.Рік тому
Привет, пассажиры! А вот и первая часть подробного урока про оптимизацию физики в Unity. Сегодня будет много интересного, гости программы: Collision Matrix, Rigidbody и Collider'ы, Iterpolation, Solver Iterations, Broadphase, Narrow Phase и другие. Будем говорить о том, как оптимизировать игру в Unity с точки зрения физики. Подробнее про read/write (isReadable): docs.unity3d.com/ScriptReference...
Оптимизация игры на Unity. Звуки
Переглядів 6 тис.Рік тому
Подробный урок по оптимизации аудиофайлов в Unity. Разберём параметры, отвечающие за момент (Preload Audio Data, Load In Background) и тип (Load Type) загрузки аудиоклипа, сжатие (Compression) и установку частоты дискретизации (Sample Rate Setting). • 🖤 GitHub: github.com/MeeXaSiK • 🖤 VK: nighttraincode • 🖤 Telegram: t.me/nighttraincode • 🖤 Instagram: the.meps_ • 🖤 Поддерж...
Самый лёгкий паттерн. Продвинутый C# в Unity
Переглядів 8 тис.Рік тому
Паттерн Стратегия (Strategy) - это самый простой шаблон проектирования и в этом видео я подробно про него расскажу с примерами на Unity и C#. Также расскажу про композицию и агрегацию и покажу как можно избавиться от наследования с помощью интерфейсов в C#. • 🖤 GitHub: github.com/MeeXaSiK • 🖤 VK: nighttraincode • 🖤 Telegram: t.me/nighttraincode • 🖤 Instagram: the.meps_ • 🖤...
Что такое SOLID? Простыми словами о принципах ООП
Переглядів 12 тис.Рік тому
Подробно разберём все ООП принципы SOLID с примерами из Unity и C#. Также проведём и небольшой разбор кода. • 🖤 GitHub: github.com/MeeXaSiK • 🖤 VK: nighttraincode • 🖤 Telegram: t.me/nighttraincode • 🖤 Instagram: the.meps_ Все принципы объектно-ориентированного программирования SOLID: 1. Принцип единой ответственности [SRP] 2. Принцип открытости/закрытости [OCP] 3. Принцип ...
Полезные атрибуты в Unity и C#, о которых ты не знал!
Переглядів 12 тис.Рік тому
Привет, пассажиры! Я подготовил новый подробный и крупный ролик, в котором рассказываю про кучу полезных атрибутов в Unity и C#! Продвинутый C# в Unity понятным языком. Атрибуты. • NaughtyAttributes: github.com/dbrizov/NaughtyAttributes • 🖤 GitHub: github.com/MeeXaSiK • 🖤 VK: nighttraincode • 🖤 Telegram: t.me/nighttraincode • 🖤 Instagram: the.meps_ • 🖤 Поддержка канала: ww...
Фишки в C# и Unity, о которых ты не слышал!
Переглядів 15 тис.2 роки тому
Всех с первым днём лета :) Салют, ты на канале Night Train Code 😎 Давно не было видео и пора исправлять ситуацию. Ловите сразу крупный ролик про полезные фишки и трюки в C# и Unity, о которых вы, возможно, не знали Продвинутый C#. В этом видео много интересного про инкапсуляцию, nullable safety и многое другое • 🖤 GitHub: github.com/MeeXaSiK • 🖤 VK: nighttraincode • 🖤 Telegram: t.me/nigh...
Продвинутый C# в Unity. Паттерн Visitor [Посетитель]
Переглядів 10 тис.2 роки тому
Шаблон проектирования «Посетитель» в реальном проекте на Unity за 5 минут! Салют, ты на канале Night Train Code 😎 • 🖤 GitHub: github.com/MeeXaSiK • 🖤 VK: nighttraincode • 🖤 Telegram: t.me/nighttraincode • 🖤 Instagram: the.meps_ • Таймлайн: 00:00 ► Вступление 00:21 ► Для чего нужен Паттерн Visitor (Посетитель)? 01:13 ► Наглядная теория 01:28 ► Интерфейс Visitor для всех ти...
Подробный урок по Zenject в Unity. DI Container
Переглядів 35 тис.2 роки тому
Zenject в Unity - что это? Подробный урок за 15 минут! DI Container [C#] в лице Zenject (или же Extenject) Как пользоваться Zenject в Unity? Для чего нужны Project и Scene Context? Как использовать Mono Installer? Это только часть того, что затронем в ролике :) • Разбор принципа SOLID Dependency Inversion (DIP) • Dependency Injection Unity = Zenject [Extenject] Салют, ты на канале Night Train C...
Оптимизация игры на Unity. Паттерн Observer
Переглядів 11 тис.2 роки тому
Не нужно каждый раз проверять состояние объекта в Update, когда есть способ проверки только при изменении значения! Как реализовать Паттерн «Наблюдатель» (Observer) в Unity, C#? Об этом в ролике 🔥 • Примеры из реального проекта на Unity. Также затронем работу со свойствами (аксесорами get и set) в C# и делегаты и события • Разрываем жёсткие зависимости в коде! Паттерн наблюдатель в Unity с прим...
Оптимизация игры на Unity. LOD Group
Переглядів 15 тис.2 роки тому
Как увеличить FPS в 2 раза? Level of Detail Group для оптимизации вашего проекта в Unity Салют, ты на канале Night Train Code 😎 Этот вариант оптимизации игры на Unity3D подойдёт и под мобильные устройства. Исправляем низкий фпс • 🖤 GitHub: github.com/MeeXaSiK • 🖤 VK: nighttraincode • 🖤 Telegram: t.me/nighttraincode • 🖤 Instagram: the.meps_ Таймлайн: 00:00 ► Что такое LOD G...
Инкапсуляция за 1 минуту! [C#]
Переглядів 6 тис.2 роки тому
Инкапсуляция простым и понятным языком Салют, ты на канале Night Train Code 😎 Что такое инкапсулирование в ООП C#? • 🖤 GitHub: github.com/MeeXaSiK • 🖤 VK: nighttraincode • 🖤 Telegram: t.me/nighttraincode • 🖤 Instagram: the.meps_ Поддержка канала: www.donationalerts.com/r/nighttraincode
Оптимизация игры на Unity. Universal Render Pipeline
Переглядів 36 тис.2 роки тому
Оптимизация игры на Unity. Universal Render Pipeline
Оптимизация игры на Unity. Entity Component System, LeoECS
Переглядів 27 тис.2 роки тому
Оптимизация игры на Unity. Entity Component System, LeoECS
Оптимизация игры на Unity. Object Pooling
Переглядів 7 тис.2 роки тому
Оптимизация игры на Unity. Object Pooling
Оптимизация игры в Unity. Повышаем FPS
Переглядів 26 тис.3 роки тому
Оптимизация игры в Unity. Повышаем FPS
Спасибо тебе огромное. Нигде не было понятного объяснения, как сделать разброс, а оказывается нужно было всего лишь просуммировать два вектора, а я прибалвлял рандомное значение к каждой оси
@@olegggames6409 На здоровье, спасибо за коммент)
Привет, можешь, пожалуйста, сделать ролик про Ecs lite? Там я пробовал совместить Ecs lite и Voody UniLeo, но выдавало ошибку(поменял на leoEcs и все заработало). Но том с 22 года заморозили проект и сейчас развивается только ECS Lite, так что было бы круто узнать как именно с этой версией работать и что можно добавить вместо Voody UniLeo. Спасибо)
Ссылка на Zenject для слабаков, согласен с автором))
Еду на собес и смотрю твой видик. Кайфанул в процессе ❤
@@OG_LEB Удачи на собесе!)
Лучшее видео!!! СПАСИБО огромное, только по нему смог разобраться!
На здоровье)
И какой смысл? Мне надо из 30 сделать 100 Нахуя мне 3 фпс? Делать гораздо сложнее А смысла почти нет А чё делать с Fixed Update? У меня на нем вообще вся игра работает
Слишком тихие ролики
Так я не понял, сколько лет ты уже кодишь? Проблема статиков это не в очистки а как раз в то почему мы используем инжекторы -> глобальные переменные делает код менее понятным так как нет нормальной передачи того или иного класса Автор не понимает что делает и не умеет подать материал, для него zenject это не инжектор)
А ну у него и ответ в конце для чего zenject, решает проблемы синглтонов) Да автор не только про это говорит, и про забразсывания зависимостях, только автор понимает что это позволяет делать Расскажу в сущности для чего используется инжекторы. 1) У нас есть файл с конфигом проекта, при использования Zenject это installer, и то что мы используем интерфейсы мы можем очень просто менять их реализации только в конфиге, что позволяет не трогать код) 2) Решает проблемы с глобальной видимости -> синглтон антипатерн который делает код вредным и его использование это плохо, как раз вместо синглтонов которые обычно используем, мы делаем обычные классы и перекидываем 3) позволяет быть уверенным что до любого кода какой то сервис точно дойдет, а если сломается мы знаем где)
Вообще что я тут искал, искал гайд по тулу с его фишками, а получил непонятный ролик, для новичков слишком сложно будет понять это, для стариков быдет фейспалм
Спасибо за видео, я 3 дня мучался с искажением звука после билда на андройд в юнити, но после твоего видео я разобрался с оптимизацией звуков и у меня все хорошо работает
отличный материал, действительно очень мало кто говорит про архитектуру кода на примерах да ещё и в GameDev-е. PS: на этапе про InputService было бы очень к месту применить и рассказать про Dependency Injection.
привет из 24 года
Привет)
А если у меня префабы - созданные в юнити ПроБилдером куски коридоров???
Харооош👏
чел ты рил думаешь что этим повысил производительность? так ты же все ровно создаешь куча экземпляров которые создаются и удаляются, получается что шила на мыло, больше заморочки чем КПД😁 Мой совет кто ищет реальное решение то попробуйте ECS а для более прожорливых задач JobSystem
как я сюда попал? зачем я это смотрю? ведь я даже не программист 🤔
Поподробнее бы про кулдаун на атаку
Ну и каша в коде конечно с 4 этажными функциями и изменением кучи скриптов чтобы добавить один объект
Возняяя
Мне кажется первый пример нужно было реализовывать через паттерн состояния или изменить слегка пример. Убрать swim и добавить новые классы ходьба спортивным шагом, обычная ходьба, пьяная ходьба и т.пд
Годно. Просто и понятно. Большое спасибо.
Удалил я значит папку Library, по итогу проект вообще отказался работать …
Ничего не понятно, от слова ничего.
Привет. А есть видео по оптимизации графики?
За ролик, конечно, спасибо, но единственное, что я не могу понять - зачем делать спидран по ролику-туториалу? Даже если в названии нет ни одного упоминания о том, что это учебный материал, в любом случае с первых секунд он себя позиционирует как обучающий. Невероятно трудно пытаться извлечь какую-то информацию, когда она скипается буквально за 1-2 секунды.. приходится >Постоянно< отматывать назад. Надеюсь, если будут еще гайды по ECS, то чуть-чуть по-медленнее и без скипа некоторых новосозданных классов/структур😵💫 Но еще раз спасибо! материала по этой теме действительно мало :(
Старый ролик, в новых не спидраню) Спасибо за коммент
А что делать, если при частой тряске камера смещается в сторону?
Лёрпать вращение / позицию камеры к дефолтным значениям
Вполне доступно!😁
Живой? Видео 8 месяцев нет
Живой, в телеграме посты почаще)
Ребят, я создал 2d urp project и у меня не работает свет почему-то, вообще никакой, как это починить?
Привет, спроси у меня на форуме в телеграме, мб подскажут. Сам я с 2д почти не работал
@@NightTrainCode Спасибо большое, я уже разобрался, надо было создать специальный материал со специальным шейдером “URP/2d/sprite-lit-default”, и накинуть этот материал на все объекты и тогда на них начинал работать 2d свет
неплохо получилось, а главное уложился в 8 минут и объяснил достойно, спасибо)
Привет! А можно как то отключить лоды? А то они очень портят игры, в старых играх такого не было.
Привет! В каком плане портят?
@@NightTrainCode Очень не красиво выглядит когда текстуры объектов меняются перед самым носом.
@@EvgeniySuprunov Можно же дистанцию до изменения поменять
@@NightTrainCode А где поменять? В каком-то текстовом документе?
Проморгал я момент с entity reference, думал думал как решить, в итоге сделал через сравнивание позиции коллайдера и всех энтити, но твое решение куда лучше
АВТОР РОЛИКА НЕ ПОЗОРЬСЯ, ЕСЛИ ТЫ НЕ ШАРИШЬ ЗА API UNITY ТО НЕ НУЖНО ПОКАЗЫВАТЬ ПРИМЕР НА КОНСОЛЬНОМ ПРОЕКТЕ ТАК ЭТОТ ПРИМЕР НЕ ТОЖЕ САМОЕ ЧТО В РЕАЛЬНОМ ПРОЕКТЕ UNITY. В UNITY НЕЛЬЗЯ СОЗДАВАТЬ НОВЫЙ ЭКЗЕМПЛЯР КЛАССА И ПЕРЕДОВАТЬ ССЫЛКУ ЭТОГО ЭКЗЕМПЛЯРА, КАК В КОНСОЛЬНОМ ПРОЕКТЕ.
ЛАДНО.
Делать хитбокс визитером не очень в плане открытости/закрытости. Лучше сделать оружия визитерами, тогда для добавления нового оружия нужно будет создать 1 реализацию визитера и все. Собственно визитер и нужен для удобного добавления операции над существующей иерархией классов (хибоксов).
Рощщ
Отдельное спасибо за 18:16 пол дня тупил
Мне показалось по нарративу из видео, что принцип L и I очень схожи , можете объяснить ?
Короче ненужно :|
Где можно посмотреть ваши игры ?
Ссылки на проекты, в разработке которых я принимал участие, есть в моём GitHub профиле
благодаря тебе я узнал такой красивой вещи и как ей пользоваться, спасибо. Оказывается мой проект тоже может быть красивым
Слишком усложненный код, можно было спокойно написать намного меньше. Наверное автор просто хотел показать, как он хорошо знает среду юнити, что лепил в код абсолютно всё, что знает, когда можно было ту же логику написать намного понятнее. Люди, которые только начинают заниматься геймдевом сразу убежали с этого канала.
Код очень простой, ничего сложного
Просто волшебник)
Скажите пожалуйста правильно ли я понял) Инкапсуляция обеспечивает три правила: 1. Данные (поля), и методы которые работают с этими данными, находятся в одном классе. 2. Сокрытие данных: данные (поля) должны быть сокрыты от внешнего использования т.е. поля должны быть приватными. 3. Методы, которые работают с данными (полями), защищают от неправильного использования.
Нет. Инкапсуляция - это не сокрытие данных. А кроме того, инкапсуляция вообще не имеет привязки к ООП, и широко практикуется, например, в языке си, где вообще нет никаких классов.
Такой бы тутор по LeoEcs lite, было бы супер. Тут уже многое устарело