Как сделать ЛЮБУЮ СТРЕЛЬБУ в UNITY? На примере РЕАЛЬНЫХ игр

Поделиться
HTML-код
  • Опубликовано: 17 окт 2024

Комментарии • 97

  • @oshiro_channel
    @oshiro_channel Год назад +5

    Это определенно один из лучших и понятных уроков! Как тебе идея сделать полноценный гайд на создание, к примеру, фпс шутера? Это очень поможет новичкам, поскольку у тебя очень хороший код и объяснения!

  • @dimabb4972
    @dimabb4972 Год назад +10

    Спасибо за такое видео! Ты определенно один из лучших челов на русскоязычном ютубе, с нетерпением жду нового контента)

  • @olegggames6409
    @olegggames6409 3 месяца назад +1

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

    • @NightTrainCode
      @NightTrainCode  3 месяца назад +1

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

  • @ilyakovin4167
    @ilyakovin4167 Год назад +3

    Видосик шикарен. не только для стрельбы, но и про приятные фишки. Понравился фокус с Enum

  • @kowaruss
    @kowaruss Год назад +5

    Очень классно. Продолжай. Ещё много разных тем, которые надо осветить.
    Естественно, ждём урок по новой Input системе

  • @JIN-TECH
    @JIN-TECH Год назад +4

    Великолепный комплексный урок. Спасибо!

  • @artsurock
    @artsurock Год назад +3

    Шикарное видео, спасибо за подробный разбор реализации разных типов атак, подчеркнул для себя несколько интересных фишек, которых нигде раньше не встречал )

    • @NightTrainCode
      @NightTrainCode  Год назад

      На здоровье, я рад, спасибо)

  • @Developer-do2pt
    @Developer-do2pt Год назад +2

    Очень крутое видео! Сначало подумал что видос будет не качественный, без монтажа. Ну как бы смонтировать видос длинной 40 минут очень не просто. Но нееет! Здесь автор очень постарался, я был удивлен! Редко встретишь качественные уроки. Под этим видео должен быть миллион просмотров (как минимум).

  • @isITMACHINE
    @isITMACHINE Год назад +3

    Ждем видос про инпут систем, сам пообещал)))

  • @thebad7628
    @thebad7628 Год назад +6

    Просто лучший 👍

  • @andrewbogun5822
    @andrewbogun5822 Год назад +1

    что скажешь - лучший. Ни больше, ни меньше!

  • @forcesoftheevil9252
    @forcesoftheevil9252 Год назад +1

    Ого видева вышло. Благодарю, Миш))

  • @nepochat
    @nepochat Год назад +1

    Не зря ждал, спасибо)

  • @caveman7246
    @caveman7246 Год назад +1

    Наконец-то это вышло🎉🎉

  • @Tumanop
    @Tumanop Год назад +1

    Конечно хотим урок об новой системе, пили быстрее))

  • @evdafeevdafever4094
    @evdafeevdafever4094 Год назад +1

    Мишань, как всегда сочно, вкусно и полезно. Спасибо за контент

  • @MrVoronaExtra
    @MrVoronaExtra Год назад +1

    Теперь нужен гайд по стреляющим ботам (как в Сталкере)

  • @evggg
    @evggg 9 месяцев назад +1

    Насчет запуска снаряда через forward самой пушки - это не очень удобно. В том плане, что при таком подходе снаряды не всегда летят строго в прицел, потому что пушка смещена относительно центра камеры, еще может быть повернута как нибудь потом, чтоб в камере лучше смотрелась. Можно отдельный трансформ конечно задать для forward, но и он будет давать погрешность в прицеливании на большом расстоянии. Я направление запуска проджектайла тоже через рейкаст делаю. Что-то типа var dir = (hit.Point - spawnPoint.position).normalized. Ну и длину луча в метров 500, чтоб в дальних врагов хорошо попадать.

  • @Erzukov
    @Erzukov Год назад +1

    Супер! Спасибо за видос!

  • @ДенисКузнецов-л8ж
    @ДенисКузнецов-л8ж 8 месяцев назад

    😃😃 Лучший урок на ютюбе) Но сложно) Я варюсь в Unity чуть больше года и да мне как новичку, подобный код сложно написать самому без подсказок - то есть ты знаешь что такое маски, луч, интерфейс, циклы - пользуешься не раз, но соединить в такую классную систему самому не получается)

  • @vladimirkraft4315
    @vladimirkraft4315 Год назад +1

    Автор, спасибо за выпуск! 👍

  • @niksanhts
    @niksanhts Год назад +1

    я очень жду, когда у тебя будет очень много подпесчиков

  • @KawaiMarkus
    @KawaiMarkus 11 месяцев назад +1

    Йо, жалко что некоторые видосы были скрыты или удалены у тя на канале, например про делегаты или кэширования, не знаю с чем связано, но бро лучше оставляй видосы, ты вносишь очень большой вклад в развитее Unity.
    UPD: я видел пост где ты говорил что есть какие-то ошибки или недочёты, но всё равно было бы классно если бы оставил!

    • @NightTrainCode
      @NightTrainCode  11 месяцев назад +1

      Привет, спасибо за коммент)
      Там не только из-за недочётов пришлось скрыть, я всё хотел и хочу перезаписать старые видосы, потому что некоторые вещи немного поменялись, но пока времени вообще нифига нет, сейчас вообще на двух работах пашу)

    • @KawaiMarkus
      @KawaiMarkus 11 месяцев назад +1

      @@NightTrainCode Блин я всё равно рад, что ты делаешь для нас! Понимаю что времени мало, главное не забывай отдыхать. Я оч много узнал из твоих видео, хотя вот занимаюсь Unity 2 года и понимаю, что оч много не знаю, так как пользовался всего лишь базой. А теперь хочется продвинуться

    • @NightTrainCode
      @NightTrainCode  11 месяцев назад +1

      @@KawaiMarkus На здоровье, а тебе большое спасибо за мотивацию)

  • @EnotoButerbrodo
    @EnotoButerbrodo Год назад +3

    Инпут лучше использовать через интерфейс, аля IInputService. Потому-что иначе изменение схемы управления может быть болезненно. Да и код понятней становится. Раз уж zenject используется

    • @NightTrainCode
      @NightTrainCode  Год назад

      Справедливо. В проекте так и юзаю, а тут смысла нет людей ещё больше грузить

  • @artemkakrutoi
    @artemkakrutoi Год назад +2

    Хочу видео про новую Input System

  • @motoday3580
    @motoday3580 Год назад +1

    Лучший из лучших !!!!

  • @ephitariathegame2brainstud996
    @ephitariathegame2brainstud996 Год назад +1

    Супер, спасибо.

  • @Hellscaner
    @Hellscaner Год назад +1

    Комментарий, в продвижение канала.

  • @3epyc
    @3epyc Год назад +1

    Качественный контент...

  • @zik7401
    @zik7401 Год назад

    Можешь порекомендовать, какой нибудь материал для изучения Unity и C#? (Конечно, не считая себя).

  • @dogmaruz
    @dogmaruz Год назад +1

    Сделай урок про New Input System

  • @def6141
    @def6141 Год назад +1

    Обычно ниче не пишу но тут напишу и лайкну ;)

  • @EliseyUnity
    @EliseyUnity Год назад +1

    Спасибо большое.😊

    • @NightTrainCode
      @NightTrainCode  Год назад

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

  • @mamas111
    @mamas111 5 месяцев назад

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

  • @1lowol1
    @1lowol1 Год назад +1

    Супер!

  • @DenisFomin
    @DenisFomin Год назад

    Про дырки от пуль, Decal не рассказал ))) можно ли объять не объятое?
    В остальном отличное видео!

    • @NightTrainCode
      @NightTrainCode  Год назад

      В последних версиях Unity они есть без HDRP? Та и видео было по большей части про код, а не про визуал)

    • @awmindiegame
      @awmindiegame Год назад

      ​@@NightTrainCode Уже в URP завезли

  • @maksimchibisov6164
    @maksimchibisov6164 Год назад +1

    Сделай ролик про новую инпут систему плииииииз !!!! =))))

  • @z4nzimoon
    @z4nzimoon Год назад +1

    балдеж

  • @jonathansantos6026
    @jonathansantos6026 Год назад

    Или можешь записать видео как ты реализовал контроллер? Я сейчас использовал CharacterController встроенный в юнити, работает как нужно, но хочу написать свой, т. к. буду его масштабировать и изменять по мере роста возможностей... Заранее спасибо)

  • @Arcurvet
    @Arcurvet Год назад

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

  • @ywi4548
    @ywi4548 Год назад +1

    Харош

  • @holerkey
    @holerkey Месяц назад

    спасибо

  • @muuulya
    @muuulya Год назад +1

    Супер! Спасибо.
    Не очень понял почему у enum в примере должны быть обязательно значения 1,2,4,8...

    • @NightTrainCode
      @NightTrainCode  Год назад

      Спасибо и на здоровье)
      Потому что у тебя может быть много вариантов маски. Если 2 элемента, то две разные комбинации. Если 3 элемента, то это уже 2 в квадрате = 4 разные комбинации и так далее. Информатика

    • @muuulya
      @muuulya Год назад

      @@NightTrainCodeколичество комбинаций понятно, а вот как из этого следует, что enum не может состоять из 1,2,3,4 мне не понятно. Возможно причина в не понимании какого принципы работы

    • @bonbad612
      @bonbad612 Год назад

      @@muuulyaтут логика в том что у нас комбинации должны быть уникальными 1,2,3,4 не получится потому что 1+2=3, а 3 уже есть в последовательности 1,2,3,4. Это как двоичная система получается

    • @muuulya
      @muuulya Год назад

      @@bonbad612 Спасибо за ответ. Попробовал на практике посмотреть значения в дебаге и стало все понятнее 🙂

  • @alexey6649
    @alexey6649 Год назад

    Ребят,те кто давно работают в юнити,как лучше всего изучить скриптинг в юнити ?в юнити манул есть материал,но хотелось что нибудь по лучше найти

  • @jonathansantos6026
    @jonathansantos6026 Год назад

    Здравствуй, хочу реализовать реалистичное поведение персонажа, с учетом костей, с учетом физики... Движение ног влево, вправо, вперед, назад... Приятное поведение модели персонажа, лучше IK и анимации создать в блендере, а потом настраивать в юнити? Или лучше в блендере создать риггинг и через код в юнити создать IK, я видел там по поводу этого есть методы... У одного ютубера видел SHIMORO у него написано через IK... Размышляю по этому поводу, надеюсь у кого-то есть соображение, что лучше и как это реализовать. Было приятно если есть статья или видео на ютуб по этому поводу... Заранее спасибо...

  • @niknikagain
    @niknikagain 28 дней назад

    Реализовывать атаки с задержкой через зашитые в коде задержки - хреновое решение. Гораздо лучше и удобнее добавить ивенты в нужных моментах анимации и уже в обработчиках проверять успешность атаки и наносить урон. Там же задавать и ивент окончания атаки. Это же в некоторых случаях может помочь в реализации куллдауна после атаки (часто его вообще не придется реализовывать).

  • @InverseGameLogic
    @InverseGameLogic Год назад +2

    Отличное видео! Всё разобрано понятным и доступным языком.
    Единственное, что бросилось в глаза - методы TryFindEnemies и TryAttackEnemies на 18:36. Первый метод возвращает bool - тут вопросов нет, а вот второй возвращает void. И тут возникает вопрос, а почему он "TryAttackEnemies", а не просто "AttackEnemies ", приходится лезть в метод и смотреть, что там есть условие для поиска компонентов, которые могут принимать урон. Т.е. фактически это опять же поиск врагов, только с уточнением, что поиск врагов, которые могут принимать урон. Я бы перекомбинировал эту логику, выделив сначала TryFindTargets, вернув список overlap, затем этот список передал бы в TryFindEnemies и там бы уже отсеял, оставив только те цели, которые могут принимать урон, и уже получившийся список можно было бы передать в AttackEnemies.

    • @NightTrainCode
      @NightTrainCode  Год назад +2

      Спасибо)
      Да, лучше просто переименовать в AttackEnemies. Мне уже лень было в миллионный раз что-то переснимать)

    • @InverseGameLogic
      @InverseGameLogic Год назад +2

      @@NightTrainCode порой забываешь, сколько работы происходит за кадром.
      Спасибо большое, что делишься опытом, да ещё и в таком качественном формате! Я такого качества на платных курсах не видел, а тут бесплатно - вообще праздник!

    • @NightTrainCode
      @NightTrainCode  Год назад +1

      @@InverseGameLogic Спасибо большое!) Чётко сказано, за кадром вообще такая задница, чтобы конфетку выпустить...

  • @romaiacovlev3364
    @romaiacovlev3364 6 месяцев назад

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

    • @NightTrainCode
      @NightTrainCode  6 месяцев назад

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

  • @SergeySvotin
    @SergeySvotin Год назад

    Наконец-то раскрыта концепция дерьмовой стрельбы в кс, мудаки среди разрабов просто закодили мгновенный урон через рейкаст, хотя правильно было бы рассчитывать физически попадание через прожектайл, учитывая скорость снаряда, расстояние, а соответственно время полета и движение цели. Да, сложно, зато правильно. А так это не шутер, а тир

    • @evggg
      @evggg 9 месяцев назад

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

    • @SeverDev
      @SeverDev 5 месяцев назад

      Подумаем логично: Что случилось бы с не очень мощными компами, если 10 игроков одновременно пустили бы очередь?

    • @SergeySvotin
      @SergeySvotin 5 месяцев назад

      @@SeverDev то же, что происходит с ними сейчас. Потому что грузят комп текстурки, а не математические модели

    • @SeverDev
      @SeverDev 5 месяцев назад

      @@SergeySvotin так если ты простчитываешь физическое попадание для каждого из 300 объектов на сцене, их разброс и силу, то твой комп зависнет, так что в большинстве случаев стрельба в онлайн шутерах идёт через рэйкасты

    • @SergeySvotin
      @SergeySvotin 5 месяцев назад

      @@SeverDev ты считаешь, что рэйкаст так легко рассчитать? Комп не зависнет, да и 300 снарядов надо еще умудрится в кс прймать, когда там от силы 15 одновременно в перестрелке 2-3 человек

  • @JohnSmith-tk2wp
    @JohnSmith-tk2wp Год назад

    Почему проджектайл через силу и соответственно через физику ?
    Это нубство портит всё видео.Столько умных слов, пулы и прочее, но продежектайлы через мать её физику как для первоклашек.

    • @NightTrainCode
      @NightTrainCode  Год назад

      А через что надо сделать и как обрабатывать столкновения своим кодом?

    • @NightTrainCode
      @NightTrainCode  Год назад

      А для физического снаряда, который от стен отскакивает тоже свою физику без физики писать?
      А потом проверять столкновения со всеми коллайдерами на сцене?

    • @JohnSmith-tk2wp
      @JohnSmith-tk2wp Год назад

      ​@@NightTrainCode Подумай о том как ты будешь реплицировать физику по сети.
      Определение столкновений, в этом нет симуляции через физические силы. Это только проверка столкновений.
      Отскакивающий от стен снаряд это интересная тема.

    • @NightTrainCode
      @NightTrainCode  Год назад

      @@JohnSmith-tk2wp В том же Квантуме есть своя физика, свой фреймворк. А здесь видео не про мультиплеер, а про ванильный Юнити

    • @JohnSmith-tk2wp
      @JohnSmith-tk2wp Год назад

      @@NightTrainCode проджектайлы через физику в таком видео это как бельмо, или специально с каким то умыслом.
      Можно было показать ещё один способ.
      Юнити ванильный.Мультиплеер не означает что мы обязаны использовать какие то левые фреймворки или сервисы, это может быть просто свой сервак написаный на чём угодно, например на с++ в рамках чьей то дипломной работы или типа того.
      Обучение и коммерческое использование движка это немного разные цели.
      К примеру я пишу игру на ЯИ и я хочу что бы там всё быстро работало без лишних нагромождений.У меня проджектили будут без физики, потому что не вижу смысла перегружать ей игру.Эти классы или их логику я смогу позже испоьзовать в других играх или сделать рескин.Они более универсальны, и по этому я могу перенести логику даже на другой движок.

  • @Tera-h7e
    @Tera-h7e 7 месяцев назад +2

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

    • @romaiacovlev3364
      @romaiacovlev3364 5 месяцев назад +2

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

  • @МихаилЛьвов-ь2ч
    @МихаилЛьвов-ь2ч Год назад +2

    Можно выговаривать английские слова проще, а то жесть слух режет или выговаривать нормально