Это определенно один из лучших и понятных уроков! Как тебе идея сделать полноценный гайд на создание, к примеру, фпс шутера? Это очень поможет новичкам, поскольку у тебя очень хороший код и объяснения!
Спасибо тебе огромное. Нигде не было понятного объяснения, как сделать разброс, а оказывается нужно было всего лишь просуммировать два вектора, а я прибалвлял рандомное значение к каждой оси
Шикарное видео, спасибо за подробный разбор реализации разных типов атак, подчеркнул для себя несколько интересных фишек, которых нигде раньше не встречал )
Очень крутое видео! Сначало подумал что видос будет не качественный, без монтажа. Ну как бы смонтировать видос длинной 40 минут очень не просто. Но нееет! Здесь автор очень постарался, я был удивлен! Редко встретишь качественные уроки. Под этим видео должен быть миллион просмотров (как минимум).
Насчет запуска снаряда через forward самой пушки - это не очень удобно. В том плане, что при таком подходе снаряды не всегда летят строго в прицел, потому что пушка смещена относительно центра камеры, еще может быть повернута как нибудь потом, чтоб в камере лучше смотрелась. Можно отдельный трансформ конечно задать для forward, но и он будет давать погрешность в прицеливании на большом расстоянии. Я направление запуска проджектайла тоже через рейкаст делаю. Что-то типа var dir = (hit.Point - spawnPoint.position).normalized. Ну и длину луча в метров 500, чтоб в дальних врагов хорошо попадать.
😃😃 Лучший урок на ютюбе) Но сложно) Я варюсь в Unity чуть больше года и да мне как новичку, подобный код сложно написать самому без подсказок - то есть ты знаешь что такое маски, луч, интерфейс, циклы - пользуешься не раз, но соединить в такую классную систему самому не получается)
Йо, жалко что некоторые видосы были скрыты или удалены у тя на канале, например про делегаты или кэширования, не знаю с чем связано, но бро лучше оставляй видосы, ты вносишь очень большой вклад в развитее Unity. UPD: я видел пост где ты говорил что есть какие-то ошибки или недочёты, но всё равно было бы классно если бы оставил!
Привет, спасибо за коммент) Там не только из-за недочётов пришлось скрыть, я всё хотел и хочу перезаписать старые видосы, потому что некоторые вещи немного поменялись, но пока времени вообще нифига нет, сейчас вообще на двух работах пашу)
@@NightTrainCode Блин я всё равно рад, что ты делаешь для нас! Понимаю что времени мало, главное не забывай отдыхать. Я оч много узнал из твоих видео, хотя вот занимаюсь Unity 2 года и понимаю, что оч много не знаю, так как пользовался всего лишь базой. А теперь хочется продвинуться
Инпут лучше использовать через интерфейс, аля IInputService. Потому-что иначе изменение схемы управления может быть болезненно. Да и код понятней становится. Раз уж zenject используется
Или можешь записать видео как ты реализовал контроллер? Я сейчас использовал CharacterController встроенный в юнити, работает как нужно, но хочу написать свой, т. к. буду его масштабировать и изменять по мере роста возможностей... Заранее спасибо)
Спасибо и на здоровье) Потому что у тебя может быть много вариантов маски. Если 2 элемента, то две разные комбинации. Если 3 элемента, то это уже 2 в квадрате = 4 разные комбинации и так далее. Информатика
@@NightTrainCodeколичество комбинаций понятно, а вот как из этого следует, что enum не может состоять из 1,2,3,4 мне не понятно. Возможно причина в не понимании какого принципы работы
@@muuulyaтут логика в том что у нас комбинации должны быть уникальными 1,2,3,4 не получится потому что 1+2=3, а 3 уже есть в последовательности 1,2,3,4. Это как двоичная система получается
Здравствуй, хочу реализовать реалистичное поведение персонажа, с учетом костей, с учетом физики... Движение ног влево, вправо, вперед, назад... Приятное поведение модели персонажа, лучше IK и анимации создать в блендере, а потом настраивать в юнити? Или лучше в блендере создать риггинг и через код в юнити создать IK, я видел там по поводу этого есть методы... У одного ютубера видел SHIMORO у него написано через IK... Размышляю по этому поводу, надеюсь у кого-то есть соображение, что лучше и как это реализовать. Было приятно если есть статья или видео на ютуб по этому поводу... Заранее спасибо...
Реализовывать атаки с задержкой через зашитые в коде задержки - хреновое решение. Гораздо лучше и удобнее добавить ивенты в нужных моментах анимации и уже в обработчиках проверять успешность атаки и наносить урон. Там же задавать и ивент окончания атаки. Это же в некоторых случаях может помочь в реализации куллдауна после атаки (часто его вообще не придется реализовывать).
Отличное видео! Всё разобрано понятным и доступным языком. Единственное, что бросилось в глаза - методы TryFindEnemies и TryAttackEnemies на 18:36. Первый метод возвращает bool - тут вопросов нет, а вот второй возвращает void. И тут возникает вопрос, а почему он "TryAttackEnemies", а не просто "AttackEnemies ", приходится лезть в метод и смотреть, что там есть условие для поиска компонентов, которые могут принимать урон. Т.е. фактически это опять же поиск врагов, только с уточнением, что поиск врагов, которые могут принимать урон. Я бы перекомбинировал эту логику, выделив сначала TryFindTargets, вернув список overlap, затем этот список передал бы в TryFindEnemies и там бы уже отсеял, оставив только те цели, которые могут принимать урон, и уже получившийся список можно было бы передать в AttackEnemies.
@@NightTrainCode порой забываешь, сколько работы происходит за кадром. Спасибо большое, что делишься опытом, да ещё и в таком качественном формате! Я такого качества на платных курсах не видел, а тут бесплатно - вообще праздник!
Наконец-то раскрыта концепция дерьмовой стрельбы в кс, мудаки среди разрабов просто закодили мгновенный урон через рейкаст, хотя правильно было бы рассчитывать физически попадание через прожектайл, учитывая скорость снаряда, расстояние, а соответственно время полета и движение цели. Да, сложно, зато правильно. А так это не шутер, а тир
Какие проджектайлы в КС, там пули, которые на таких расстояниях, можно сказать, мгновенно долетают. Так что рейкаст там самое то. Ну и лирическое отступление: самый популярный шутер всех времен явно не мудаки делают и что-то да они понимают в качественной стрельбе.
@@SergeySvotin так если ты простчитываешь физическое попадание для каждого из 300 объектов на сцене, их разброс и силу, то твой комп зависнет, так что в большинстве случаев стрельба в онлайн шутерах идёт через рэйкасты
@@SeverDev ты считаешь, что рэйкаст так легко рассчитать? Комп не зависнет, да и 300 снарядов надо еще умудрится в кс прймать, когда там от силы 15 одновременно в перестрелке 2-3 человек
Почему проджектайл через силу и соответственно через физику ? Это нубство портит всё видео.Столько умных слов, пулы и прочее, но продежектайлы через мать её физику как для первоклашек.
А для физического снаряда, который от стен отскакивает тоже свою физику без физики писать? А потом проверять столкновения со всеми коллайдерами на сцене?
@@NightTrainCode Подумай о том как ты будешь реплицировать физику по сети. Определение столкновений, в этом нет симуляции через физические силы. Это только проверка столкновений. Отскакивающий от стен снаряд это интересная тема.
@@NightTrainCode проджектайлы через физику в таком видео это как бельмо, или специально с каким то умыслом. Можно было показать ещё один способ. Юнити ванильный.Мультиплеер не означает что мы обязаны использовать какие то левые фреймворки или сервисы, это может быть просто свой сервак написаный на чём угодно, например на с++ в рамках чьей то дипломной работы или типа того. Обучение и коммерческое использование движка это немного разные цели. К примеру я пишу игру на ЯИ и я хочу что бы там всё быстро работало без лишних нагромождений.У меня проджектили будут без физики, потому что не вижу смысла перегружать ей игру.Эти классы или их логику я смогу позже испоьзовать в других играх или сделать рескин.Они более универсальны, и по этому я могу перенести логику даже на другой движок.
Слишком усложненный код, можно было спокойно написать намного меньше. Наверное автор просто хотел показать, как он хорошо знает среду юнити, что лепил в код абсолютно всё, что знает, когда можно было ту же логику написать намного понятнее. Люди, которые только начинают заниматься геймдевом сразу убежали с этого канала.
Это определенно один из лучших и понятных уроков! Как тебе идея сделать полноценный гайд на создание, к примеру, фпс шутера? Это очень поможет новичкам, поскольку у тебя очень хороший код и объяснения!
Спасибо за такое видео! Ты определенно один из лучших челов на русскоязычном ютубе, с нетерпением жду нового контента)
Спасибо большое)
Спасибо тебе огромное. Нигде не было понятного объяснения, как сделать разброс, а оказывается нужно было всего лишь просуммировать два вектора, а я прибалвлял рандомное значение к каждой оси
@@olegggames6409 На здоровье, спасибо за коммент)
Видосик шикарен. не только для стрельбы, но и про приятные фишки. Понравился фокус с Enum
Очень классно. Продолжай. Ещё много разных тем, которые надо осветить.
Естественно, ждём урок по новой Input системе
Спасибо)
Великолепный комплексный урок. Спасибо!
Благодарю, на здоровье!)
Шикарное видео, спасибо за подробный разбор реализации разных типов атак, подчеркнул для себя несколько интересных фишек, которых нигде раньше не встречал )
На здоровье, я рад, спасибо)
Очень крутое видео! Сначало подумал что видос будет не качественный, без монтажа. Ну как бы смонтировать видос длинной 40 минут очень не просто. Но нееет! Здесь автор очень постарался, я был удивлен! Редко встретишь качественные уроки. Под этим видео должен быть миллион просмотров (как минимум).
Большое спасибо!)
Ждем видос про инпут систем, сам пообещал)))
Просто лучший 👍
Спасибо)
что скажешь - лучший. Ни больше, ни меньше!
Спасибо!)
Ого видева вышло. Благодарю, Миш))
На здоровье)
Не зря ждал, спасибо)
Наконец-то это вышло🎉🎉
Конечно хотим урок об новой системе, пили быстрее))
Мишань, как всегда сочно, вкусно и полезно. Спасибо за контент
Спасибо, на здоровье)
Теперь нужен гайд по стреляющим ботам (как в Сталкере)
Насчет запуска снаряда через forward самой пушки - это не очень удобно. В том плане, что при таком подходе снаряды не всегда летят строго в прицел, потому что пушка смещена относительно центра камеры, еще может быть повернута как нибудь потом, чтоб в камере лучше смотрелась. Можно отдельный трансформ конечно задать для forward, но и он будет давать погрешность в прицеливании на большом расстоянии. Я направление запуска проджектайла тоже через рейкаст делаю. Что-то типа var dir = (hit.Point - spawnPoint.position).normalized. Ну и длину луча в метров 500, чтоб в дальних врагов хорошо попадать.
Супер! Спасибо за видос!
Спасибо, на здоровье!)
😃😃 Лучший урок на ютюбе) Но сложно) Я варюсь в Unity чуть больше года и да мне как новичку, подобный код сложно написать самому без подсказок - то есть ты знаешь что такое маски, луч, интерфейс, циклы - пользуешься не раз, но соединить в такую классную систему самому не получается)
Всё с опытом)
Автор, спасибо за выпуск! 👍
На здоровье)
я очень жду, когда у тебя будет очень много подпесчиков
Спасибо, я тоже)
Йо, жалко что некоторые видосы были скрыты или удалены у тя на канале, например про делегаты или кэширования, не знаю с чем связано, но бро лучше оставляй видосы, ты вносишь очень большой вклад в развитее Unity.
UPD: я видел пост где ты говорил что есть какие-то ошибки или недочёты, но всё равно было бы классно если бы оставил!
Привет, спасибо за коммент)
Там не только из-за недочётов пришлось скрыть, я всё хотел и хочу перезаписать старые видосы, потому что некоторые вещи немного поменялись, но пока времени вообще нифига нет, сейчас вообще на двух работах пашу)
@@NightTrainCode Блин я всё равно рад, что ты делаешь для нас! Понимаю что времени мало, главное не забывай отдыхать. Я оч много узнал из твоих видео, хотя вот занимаюсь Unity 2 года и понимаю, что оч много не знаю, так как пользовался всего лишь базой. А теперь хочется продвинуться
@@KawaiMarkus На здоровье, а тебе большое спасибо за мотивацию)
Инпут лучше использовать через интерфейс, аля IInputService. Потому-что иначе изменение схемы управления может быть болезненно. Да и код понятней становится. Раз уж zenject используется
Справедливо. В проекте так и юзаю, а тут смысла нет людей ещё больше грузить
Хочу видео про новую Input System
Лучший из лучших !!!!
Спасибо!)
Супер, спасибо.
Комментарий, в продвижение канала.
Благодарю!
Качественный контент...
Можешь порекомендовать, какой нибудь материал для изучения Unity и C#? (Конечно, не считая себя).
Сделай урок про New Input System
Обычно ниче не пишу но тут напишу и лайкну ;)
Спасибо)
Спасибо большое.😊
На здоровье, спасибо за коммент)
Поподробнее бы про кулдаун на атаку
Супер!
Про дырки от пуль, Decal не рассказал ))) можно ли объять не объятое?
В остальном отличное видео!
В последних версиях Unity они есть без HDRP? Та и видео было по большей части про код, а не про визуал)
@@NightTrainCode Уже в URP завезли
Сделай ролик про новую инпут систему плииииииз !!!! =))))
балдеж
Или можешь записать видео как ты реализовал контроллер? Я сейчас использовал CharacterController встроенный в юнити, работает как нужно, но хочу написать свой, т. к. буду его масштабировать и изменять по мере роста возможностей... Заранее спасибо)
Отличный урок. Жаль, что про лазер не было. Понятно, что это рэйкаст, но как реализовать изогнутый или там отражающийся лазер, не очень понятно
Харош
спасибо
Супер! Спасибо.
Не очень понял почему у enum в примере должны быть обязательно значения 1,2,4,8...
Спасибо и на здоровье)
Потому что у тебя может быть много вариантов маски. Если 2 элемента, то две разные комбинации. Если 3 элемента, то это уже 2 в квадрате = 4 разные комбинации и так далее. Информатика
@@NightTrainCodeколичество комбинаций понятно, а вот как из этого следует, что enum не может состоять из 1,2,3,4 мне не понятно. Возможно причина в не понимании какого принципы работы
@@muuulyaтут логика в том что у нас комбинации должны быть уникальными 1,2,3,4 не получится потому что 1+2=3, а 3 уже есть в последовательности 1,2,3,4. Это как двоичная система получается
@@bonbad612 Спасибо за ответ. Попробовал на практике посмотреть значения в дебаге и стало все понятнее 🙂
Ребят,те кто давно работают в юнити,как лучше всего изучить скриптинг в юнити ?в юнити манул есть материал,но хотелось что нибудь по лучше найти
Здравствуй, хочу реализовать реалистичное поведение персонажа, с учетом костей, с учетом физики... Движение ног влево, вправо, вперед, назад... Приятное поведение модели персонажа, лучше IK и анимации создать в блендере, а потом настраивать в юнити? Или лучше в блендере создать риггинг и через код в юнити создать IK, я видел там по поводу этого есть методы... У одного ютубера видел SHIMORO у него написано через IK... Размышляю по этому поводу, надеюсь у кого-то есть соображение, что лучше и как это реализовать. Было приятно если есть статья или видео на ютуб по этому поводу... Заранее спасибо...
Реализовывать атаки с задержкой через зашитые в коде задержки - хреновое решение. Гораздо лучше и удобнее добавить ивенты в нужных моментах анимации и уже в обработчиках проверять успешность атаки и наносить урон. Там же задавать и ивент окончания атаки. Это же в некоторых случаях может помочь в реализации куллдауна после атаки (часто его вообще не придется реализовывать).
Отличное видео! Всё разобрано понятным и доступным языком.
Единственное, что бросилось в глаза - методы TryFindEnemies и TryAttackEnemies на 18:36. Первый метод возвращает bool - тут вопросов нет, а вот второй возвращает void. И тут возникает вопрос, а почему он "TryAttackEnemies", а не просто "AttackEnemies ", приходится лезть в метод и смотреть, что там есть условие для поиска компонентов, которые могут принимать урон. Т.е. фактически это опять же поиск врагов, только с уточнением, что поиск врагов, которые могут принимать урон. Я бы перекомбинировал эту логику, выделив сначала TryFindTargets, вернув список overlap, затем этот список передал бы в TryFindEnemies и там бы уже отсеял, оставив только те цели, которые могут принимать урон, и уже получившийся список можно было бы передать в AttackEnemies.
Спасибо)
Да, лучше просто переименовать в AttackEnemies. Мне уже лень было в миллионный раз что-то переснимать)
@@NightTrainCode порой забываешь, сколько работы происходит за кадром.
Спасибо большое, что делишься опытом, да ещё и в таком качественном формате! Я такого качества на платных курсах не видел, а тут бесплатно - вообще праздник!
@@InverseGameLogic Спасибо большое!) Чётко сказано, за кадром вообще такая задница, чтобы конфетку выпустить...
Живой? Видео 8 месяцев нет
Живой, в телеграме посты почаще)
Наконец-то раскрыта концепция дерьмовой стрельбы в кс, мудаки среди разрабов просто закодили мгновенный урон через рейкаст, хотя правильно было бы рассчитывать физически попадание через прожектайл, учитывая скорость снаряда, расстояние, а соответственно время полета и движение цели. Да, сложно, зато правильно. А так это не шутер, а тир
Какие проджектайлы в КС, там пули, которые на таких расстояниях, можно сказать, мгновенно долетают. Так что рейкаст там самое то.
Ну и лирическое отступление: самый популярный шутер всех времен явно не мудаки делают и что-то да они понимают в качественной стрельбе.
Подумаем логично: Что случилось бы с не очень мощными компами, если 10 игроков одновременно пустили бы очередь?
@@SeverDev то же, что происходит с ними сейчас. Потому что грузят комп текстурки, а не математические модели
@@SergeySvotin так если ты простчитываешь физическое попадание для каждого из 300 объектов на сцене, их разброс и силу, то твой комп зависнет, так что в большинстве случаев стрельба в онлайн шутерах идёт через рэйкасты
@@SeverDev ты считаешь, что рэйкаст так легко рассчитать? Комп не зависнет, да и 300 снарядов надо еще умудрится в кс прймать, когда там от силы 15 одновременно в перестрелке 2-3 человек
Почему проджектайл через силу и соответственно через физику ?
Это нубство портит всё видео.Столько умных слов, пулы и прочее, но продежектайлы через мать её физику как для первоклашек.
А через что надо сделать и как обрабатывать столкновения своим кодом?
А для физического снаряда, который от стен отскакивает тоже свою физику без физики писать?
А потом проверять столкновения со всеми коллайдерами на сцене?
@@NightTrainCode Подумай о том как ты будешь реплицировать физику по сети.
Определение столкновений, в этом нет симуляции через физические силы. Это только проверка столкновений.
Отскакивающий от стен снаряд это интересная тема.
@@JohnSmith-tk2wp В том же Квантуме есть своя физика, свой фреймворк. А здесь видео не про мультиплеер, а про ванильный Юнити
@@NightTrainCode проджектайлы через физику в таком видео это как бельмо, или специально с каким то умыслом.
Можно было показать ещё один способ.
Юнити ванильный.Мультиплеер не означает что мы обязаны использовать какие то левые фреймворки или сервисы, это может быть просто свой сервак написаный на чём угодно, например на с++ в рамках чьей то дипломной работы или типа того.
Обучение и коммерческое использование движка это немного разные цели.
К примеру я пишу игру на ЯИ и я хочу что бы там всё быстро работало без лишних нагромождений.У меня проджектили будут без физики, потому что не вижу смысла перегружать ей игру.Эти классы или их логику я смогу позже испоьзовать в других играх или сделать рескин.Они более универсальны, и по этому я могу перенести логику даже на другой движок.
Слишком усложненный код, можно было спокойно написать намного меньше. Наверное автор просто хотел показать, как он хорошо знает среду юнити, что лепил в код абсолютно всё, что знает, когда можно было ту же логику написать намного понятнее. Люди, которые только начинают заниматься геймдевом сразу убежали с этого канала.
Код очень простой, ничего сложного
Можно выговаривать английские слова проще, а то жесть слух режет или выговаривать нормально