Night Train Code
Night Train Code
  • 19
  • 267 741
Как сделать ЛЮБУЮ СТРЕЛЬБУ в 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 ► Итог
Переглядів: 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
    @olegggames6409 5 днів тому

    Спасибо тебе огромное. Нигде не было понятного объяснения, как сделать разброс, а оказывается нужно было всего лишь просуммировать два вектора, а я прибалвлял рандомное значение к каждой оси

    • @NightTrainCode
      @NightTrainCode 5 днів тому

      @@olegggames6409 На здоровье, спасибо за коммент)

  • @user-zo7ob4wf8p
    @user-zo7ob4wf8p 13 днів тому

    Привет, можешь, пожалуйста, сделать ролик про Ecs lite? Там я пробовал совместить Ecs lite и Voody UniLeo, но выдавало ошибку(поменял на leoEcs и все заработало). Но том с 22 года заморозили проект и сейчас развивается только ECS Lite, так что было бы круто узнать как именно с этой версией работать и что можно добавить вместо Voody UniLeo. Спасибо)

  • @Miketo_Sanso
    @Miketo_Sanso 15 днів тому

    Ссылка на Zenject для слабаков, согласен с автором))

  • @OG_LEB
    @OG_LEB 17 днів тому

    Еду на собес и смотрю твой видик. Кайфанул в процессе ❤

    • @NightTrainCode
      @NightTrainCode 17 днів тому

      @@OG_LEB Удачи на собесе!)

  • @mrflash5404
    @mrflash5404 Місяць тому

    Лучшее видео!!! СПАСИБО огромное, только по нему смог разобраться!

  • @chmo123
    @chmo123 Місяць тому

    И какой смысл? Мне надо из 30 сделать 100 Нахуя мне 3 фпс? Делать гораздо сложнее А смысла почти нет А чё делать с Fixed Update? У меня на нем вообще вся игра работает

  • @habel2446
    @habel2446 Місяць тому

    Слишком тихие ролики

  • @davidflbdv2742
    @davidflbdv2742 Місяць тому

    Так я не понял, сколько лет ты уже кодишь? Проблема статиков это не в очистки а как раз в то почему мы используем инжекторы -> глобальные переменные делает код менее понятным так как нет нормальной передачи того или иного класса Автор не понимает что делает и не умеет подать материал, для него zenject это не инжектор)

    • @davidflbdv2742
      @davidflbdv2742 Місяць тому

      А ну у него и ответ в конце для чего zenject, решает проблемы синглтонов) Да автор не только про это говорит, и про забразсывания зависимостях, только автор понимает что это позволяет делать Расскажу в сущности для чего используется инжекторы. 1) У нас есть файл с конфигом проекта, при использования Zenject это installer, и то что мы используем интерфейсы мы можем очень просто менять их реализации только в конфиге, что позволяет не трогать код) 2) Решает проблемы с глобальной видимости -> синглтон антипатерн который делает код вредным и его использование это плохо, как раз вместо синглтонов которые обычно используем, мы делаем обычные классы и перекидываем 3) позволяет быть уверенным что до любого кода какой то сервис точно дойдет, а если сломается мы знаем где)

    • @davidflbdv2742
      @davidflbdv2742 Місяць тому

      Вообще что я тут искал, искал гайд по тулу с его фишками, а получил непонятный ролик, для новичков слишком сложно будет понять это, для стариков быдет фейспалм

  • @bender1757
    @bender1757 Місяць тому

    Спасибо за видео, я 3 дня мучался с искажением звука после билда на андройд в юнити, но после твоего видео я разобрался с оптимизацией звуков и у меня все хорошо работает

  • @max_monax
    @max_monax 2 місяці тому

    отличный материал, действительно очень мало кто говорит про архитектуру кода на примерах да ещё и в GameDev-е. PS: на этапе про InputService было бы очень к месту применить и рассказать про Dependency Injection.

  • @Idi_V_Pizdu_Eblan
    @Idi_V_Pizdu_Eblan 2 місяці тому

    привет из 24 года

  • @Siorinex
    @Siorinex 2 місяці тому

    А если у меня префабы - созданные в юнити ПроБилдером куски коридоров???

  • @ganham2802
    @ganham2802 2 місяці тому

    Харооош👏

  • @Bushido_Cat
    @Bushido_Cat 2 місяці тому

    чел ты рил думаешь что этим повысил производительность? так ты же все ровно создаешь куча экземпляров которые создаются и удаляются, получается что шила на мыло, больше заморочки чем КПД😁 Мой совет кто ищет реальное решение то попробуйте ECS а для более прожорливых задач JobSystem

  • @QQQ-cy6di
    @QQQ-cy6di 2 місяці тому

    как я сюда попал? зачем я это смотрю? ведь я даже не программист 🤔

  • @mamas111
    @mamas111 2 місяці тому

    Поподробнее бы про кулдаун на атаку

  • @axeplay1490
    @axeplay1490 3 місяці тому

    Ну и каша в коде конечно с 4 этажными функциями и изменением кучи скриптов чтобы добавить один объект

  • @anatoliy9696
    @anatoliy9696 3 місяці тому

    Мне кажется первый пример нужно было реализовывать через паттерн состояния или изменить слегка пример. Убрать swim и добавить новые классы ходьба спортивным шагом, обычная ходьба, пьяная ходьба и т.пд

  • @alucard6461
    @alucard6461 3 місяці тому

    Годно. Просто и понятно. Большое спасибо.

  • @_Dangeon_Master_
    @_Dangeon_Master_ 3 місяці тому

    Удалил я значит папку Library, по итогу проект вообще отказался работать …

  • @mrgoodpeople
    @mrgoodpeople 3 місяці тому

    Ничего не понятно, от слова ничего.

  • @daddycanstudio7506
    @daddycanstudio7506 3 місяці тому

    Привет. А есть видео по оптимизации графики?

  • @firstvf
    @firstvf 3 місяці тому

    За ролик, конечно, спасибо, но единственное, что я не могу понять - зачем делать спидран по ролику-туториалу? Даже если в названии нет ни одного упоминания о том, что это учебный материал, в любом случае с первых секунд он себя позиционирует как обучающий. Невероятно трудно пытаться извлечь какую-то информацию, когда она скипается буквально за 1-2 секунды.. приходится >Постоянно< отматывать назад. Надеюсь, если будут еще гайды по ECS, то чуть-чуть по-медленнее и без скипа некоторых новосозданных классов/структур😵‍💫 Но еще раз спасибо! материала по этой теме действительно мало :(

    • @NightTrainCode
      @NightTrainCode 3 місяці тому

      Старый ролик, в новых не спидраню) Спасибо за коммент

  • @alexstark2607
    @alexstark2607 3 місяці тому

    А что делать, если при частой тряске камера смещается в сторону?

    • @NightTrainCode
      @NightTrainCode 3 місяці тому

      Лёрпать вращение / позицию камеры к дефолтным значениям

  • @Sergey_gameDev
    @Sergey_gameDev 3 місяці тому

    Вполне доступно!😁

  • @romaiacovlev3364
    @romaiacovlev3364 3 місяці тому

    Живой? Видео 8 месяцев нет

    • @NightTrainCode
      @NightTrainCode 3 місяці тому

      Живой, в телеграме посты почаще)

  • @scanff323
    @scanff323 3 місяці тому

    Ребят, я создал 2d urp project и у меня не работает свет почему-то, вообще никакой, как это починить?

    • @NightTrainCode
      @NightTrainCode 3 місяці тому

      Привет, спроси у меня на форуме в телеграме, мб подскажут. Сам я с 2д почти не работал

    • @scanff323
      @scanff323 3 місяці тому

      @@NightTrainCode Спасибо большое, я уже разобрался, надо было создать специальный материал со специальным шейдером “URP/2d/sprite-lit-default”, и накинуть этот материал на все объекты и тогда на них начинал работать 2d свет

  • @adsk-dev
    @adsk-dev 4 місяці тому

    неплохо получилось, а главное уложился в 8 минут и объяснил достойно, спасибо)

  • @EvgeniySuprunov
    @EvgeniySuprunov 4 місяці тому

    Привет! А можно как то отключить лоды? А то они очень портят игры, в старых играх такого не было.

    • @NightTrainCode
      @NightTrainCode 4 місяці тому

      Привет! В каком плане портят?

    • @EvgeniySuprunov
      @EvgeniySuprunov 4 місяці тому

      @@NightTrainCode Очень не красиво выглядит когда текстуры объектов меняются перед самым носом.

    • @NightTrainCode
      @NightTrainCode 4 місяці тому

      @@EvgeniySuprunov Можно же дистанцию до изменения поменять

    • @EvgeniySuprunov
      @EvgeniySuprunov 4 місяці тому

      @@NightTrainCode А где поменять? В каком-то текстовом документе?

  • @user-jc3go7mf2n
    @user-jc3go7mf2n 4 місяці тому

    Проморгал я момент с entity reference, думал думал как решить, в итоге сделал через сравнивание позиции коллайдера и всех энтити, но твое решение куда лучше

  • @Bushido_Cat
    @Bushido_Cat 4 місяці тому

    АВТОР РОЛИКА НЕ ПОЗОРЬСЯ, ЕСЛИ ТЫ НЕ ШАРИШЬ ЗА API UNITY ТО НЕ НУЖНО ПОКАЗЫВАТЬ ПРИМЕР НА КОНСОЛЬНОМ ПРОЕКТЕ ТАК ЭТОТ ПРИМЕР НЕ ТОЖЕ САМОЕ ЧТО В РЕАЛЬНОМ ПРОЕКТЕ UNITY. В UNITY НЕЛЬЗЯ СОЗДАВАТЬ НОВЫЙ ЭКЗЕМПЛЯР КЛАССА И ПЕРЕДОВАТЬ ССЫЛКУ ЭТОГО ЭКЗЕМПЛЯРА, КАК В КОНСОЛЬНОМ ПРОЕКТЕ.

  • @A3azel
    @A3azel 4 місяці тому

    Делать хитбокс визитером не очень в плане открытости/закрытости. Лучше сделать оружия визитерами, тогда для добавления нового оружия нужно будет создать 1 реализацию визитера и все. Собственно визитер и нужен для удобного добавления операции над существующей иерархией классов (хибоксов).

  • @Alukard284
    @Alukard284 4 місяці тому

    Рощщ

  • @user-jc3go7mf2n
    @user-jc3go7mf2n 4 місяці тому

    Отдельное спасибо за 18:16 пол дня тупил

  • @user-ps7fh4dx7k
    @user-ps7fh4dx7k 4 місяці тому

    Мне показалось по нарративу из видео, что принцип L и I очень схожи , можете объяснить ?

  • @crwde
    @crwde 4 місяці тому

    Короче ненужно :|

  • @panama2553
    @panama2553 4 місяці тому

    Где можно посмотреть ваши игры ?

    • @NightTrainCode
      @NightTrainCode 4 місяці тому

      Ссылки на проекты, в разработке которых я принимал участие, есть в моём GitHub профиле

  • @user-rz8cy8gx9z
    @user-rz8cy8gx9z 4 місяці тому

    благодаря тебе я узнал такой красивой вещи и как ей пользоваться, спасибо. Оказывается мой проект тоже может быть красивым

  • @user-si3xd9kc9d
    @user-si3xd9kc9d 5 місяців тому

    Слишком усложненный код, можно было спокойно написать намного меньше. Наверное автор просто хотел показать, как он хорошо знает среду юнити, что лепил в код абсолютно всё, что знает, когда можно было ту же логику написать намного понятнее. Люди, которые только начинают заниматься геймдевом сразу убежали с этого канала.

    • @romaiacovlev3364
      @romaiacovlev3364 2 місяці тому

      Код очень простой, ничего сложного

  • @grozproduction686
    @grozproduction686 5 місяців тому

    Просто волшебник)

  • @qrthack
    @qrthack 5 місяців тому

    Скажите пожалуйста правильно ли я понял) Инкапсуляция обеспечивает три правила: 1. Данные (поля), и методы которые работают с этими данными, находятся в одном классе. 2. Сокрытие данных: данные (поля) должны быть сокрыты от внешнего использования т.е. поля должны быть приватными. 3. Методы, которые работают с данными (полями), защищают от неправильного использования.

    • @princessmary5556
      @princessmary5556 2 місяці тому

      Нет. Инкапсуляция - это не сокрытие данных. А кроме того, инкапсуляция вообще не имеет привязки к ООП, и широко практикуется, например, в языке си, где вообще нет никаких классов.

  • @cmldev
    @cmldev 5 місяців тому

    Такой бы тутор по LeoEcs lite, было бы супер. Тут уже многое устарело