Unity - Хорошая стрельба

Поділитися
Вставка
  • Опубліковано 1 січ 2025

КОМЕНТАРІ • 40

  • @nobice1
    @nobice1 9 місяців тому +2

    9:30 - ахахаах, вынесло с этого момента xD
    Но видос всё равно полезный, спасибо

    • @DILLINGER_PUPS
      @DILLINGER_PUPS  9 місяців тому

      Я ж сказал заранее) - ступор мозговины иногда ловлю. Написать написал, пока тяжеловато с объяснением)

    • @lyten4287
      @lyten4287 9 місяців тому

      @@DILLINGER_PUPS ахахаха

  • @DenisFomin
    @DenisFomin 8 місяців тому +2

    Есть же возможность пускать райкасты в каждом кадре на ограниченное расстояние.
    Которое вычислить как паролетаемое полей за кадр.
    Итого, и райкаст проверяет столкновение и визуальная физика не страдает.
    А ещё можно сделать вот так
    RaycastHit hit;
    if (Physics.Linecast(previousPosition, newPosition, out hit, hitLayers))
    {
    Здесь Physics.Linecast используется для определения, произошло ли столкновение между предыдущей и текущей позицией пули.

    • @DILLINGER_PUPS
      @DILLINGER_PUPS  8 місяців тому +1

      Видео с исправлением всех ошибок данной реализации уже есть на канале)

  • @mrgoodkat1135
    @mrgoodkat1135 9 місяців тому +1

    Каеф, вот это магия! Спасибо! а мона еще вот такихвота прикольных механик!!))

  • @ANHA-MIASSKIY
    @ANHA-MIASSKIY 7 місяців тому +2

    Не знал, что есть компонент trail render. Хорошая реализация визуала пули. Спасибо за видос

  • @Speed-Run-Facts
    @Speed-Run-Facts 9 місяців тому +2

    В целом очень даже годная реализация, хорошее видео.

  • @АлексейПопович-в2ф
    @АлексейПопович-в2ф 9 місяців тому +1

    Шикарный видос, все понятно и доходчиво🎉

  • @Qwiz_Moment
    @Qwiz_Moment 9 місяців тому +1

    Отличный видос, удачи тебе в продвижение 👍

  • @artursveshnikov7668
    @artursveshnikov7668 8 місяців тому +1

    Проверь профилировщиком загрузку цп, частый просчёт рэйкаста может прилично загрузить сцену. Как альтернатива, сделать rigit body у пули длинной в 2 метра, а визуальный меш короткий, обычный. Т.е. получается ты метаешь невидимое копьё со шкуркой пули и в каким то из кадров 100% будет пересечение с поверхностью.

  • @Mr_Pride
    @Mr_Pride 9 місяців тому +1

    Круто, контент в кайф

  • @Timur_OwO
    @Timur_OwO 9 місяців тому +2

    Офигенный ролик,Сделай пожалуйста инвентарь в юнити:)

    • @liquid_name1068
      @liquid_name1068 9 місяців тому

      Поддерживаю идею с инвентарём

    • @DILLINGER_PUPS
      @DILLINGER_PUPS  9 місяців тому

      Видео же есть на канале : ua-cam.com/video/AuO43-Lyrf4/v-deo.html

  • @Margnall
    @Margnall 7 місяців тому

    чувак ты гений

  • @psaPGL
    @psaPGL 9 місяців тому +1

    само видео как гайд, зачетное. + тебе в карму. но есть вопрос, - Что за точка попадения?

    • @DILLINGER_PUPS
      @DILLINGER_PUPS  9 місяців тому

      Это называется - безграмотность)

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

    0:58 совет исплзуй 100% екрана

  • @DILLINGER_PUPS
    @DILLINGER_PUPS  9 місяців тому +1

    Скрипты из урока t.me/unity_assets_free_main/1819

  • @PragmaGames
    @PragmaGames 6 місяців тому

    У тебя сейчас от fps завист как далеко пролетит пуля + лучше использовать лайнкаст и лайнить предыдущую позицию и текущую

  • @momentX_
    @momentX_ 7 місяців тому

    Как называется редактор из видео?

  • @x300-i3p
    @x300-i3p 9 місяців тому +1

    попадАние, бро :D

  • @tuttikfruttik6210
    @tuttikfruttik6210 9 місяців тому

    Хорошо, со стеной у тебя всё работает, но что по поводу врагов?
    Смоделируем ситуацию:
    Ты выстреливаешь в бегущего врага. Перед выстрелом рейкаст попадает во врага и передает startPoint и endPoint пуле. Затем, когда пуля долетает до endPoint, враг уже успел убежать => тоесть пуля не зарегистрирует врага
    Я чего то не догоняю?

    • @DILLINGER_PUPS
      @DILLINGER_PUPS  9 місяців тому +1

      Забыл про эту условность в данном ролике , в следующем ролике про улучшение стрельбы поясню за это.

    • @tuttikfruttik6210
      @tuttikfruttik6210 9 місяців тому +1

      @@DILLINGER_PUPS Я бы предложил первым рейкастом проверять только объекты на определенном слое, которые точно не будут двигаться (стены например)

    • @DILLINGER_PUPS
      @DILLINGER_PUPS  9 місяців тому

      Так и есть , у оружия надо лишь в стены попадать , но мы сделаем ещё проще , будем передавать пуле стартовую позицию , а конечная точка будет стартовая позиция + стартовая позиция.forward * 500f и даже рейкаст не нужен первый. Он у оружия остался так как стрельба до этого была при помощи обычного рейкаста)

    • @tuttikfruttik6210
      @tuttikfruttik6210 9 місяців тому

      @@DILLINGER_PUPS Ну я полагаю тогда можно обойтись без корутин. Если мы в пуле в старте пропишем Destroy(gameObject, 5f);
      А в Update будем просто передвигать пулю при помощи transform.Translate(transform.forward * speed * Time.deltaTime);
      Ну и там же делать проверку рейкастом
      Я полагаю эффект будет тот же)

  • @stbnsnt
    @stbnsnt 8 місяців тому

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

  • @skf-wm7ft
    @skf-wm7ft 9 місяців тому

    Зачем нужен тернарный оператор в 26 строчке?

    • @DILLINGER_PUPS
      @DILLINGER_PUPS  9 місяців тому

      Гарантия того что не будет NullReference Exception

  • @flugenkehhannen
    @flugenkehhannen 8 місяців тому

    Bullet bulletC = Instantiate(bullet, _shootPosition.position, _shootPosition.Ratation).GetComponent(); а теперь представьте у вас миниган с 6000 выстрелов в минуту т е 100 выстрелов в секунду и например их в игре 5 одновременно. Что будет с игрой на телефоне кто угадает?

    • @DILLINGER_PUPS
      @DILLINGER_PUPS  8 місяців тому +1

      Слишком много "если" , "может" , "наверное". Все выбирают тот способ который им в данной ситуации подходит , для такой стрельбы которую ты "Представил" - никакой способ кроме обычных рейкастов и парочки спецэффектов которые имитируют такой массивный огонь не подойдёт. Таким образом можно хоть миллиард выстрелов в минуту представить , а толку? Если нигде такого нету , а реализацию стрельбы каждый выбирает исходя из ситуации. Моим методом можно сделать какой-либо рогалик , снайпера или что-то типо того.

    • @flugenkehhannen
      @flugenkehhannen 8 місяців тому

      Блин чувак, если ты не понимаешь, почему не надо делать GetComponent каждый выстрел, то сорян. Для справки - ты можешь спавнить не только Gameobject.

    • @PragmaGames
      @PragmaGames 6 місяців тому

      ​​@@flugenkehhannen под капотом unity берет такой же get component при передаче аргументом что-то отличное от gameObject. Это можно проверить самостоятельно. Заспавнить 1000000 game object, а потом взять компонент, сразу заспавнить "компонент". Разница будет во времени обращения к нативному коду * на количество итераций * на издержеку вызова метода.

  • @SLiZER-WHiTE
    @SLiZER-WHiTE 9 місяців тому +1

    Извинитесь, пожалуйста поработайте над своей речью, что бы когда думаете не произносить звук (э), спасибо

    • @DILLINGER_PUPS
      @DILLINGER_PUPS  9 місяців тому

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

    • @artursveshnikov7668
      @artursveshnikov7668 8 місяців тому +2

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

    • @Fravia-incm
      @Fravia-incm 8 місяців тому +1

      Полностью поддерживаю коммент Артура