Пікірлер
@dragon00087
@dragon00087 7 күн бұрын
0:58 совет исплзуй 100% екрана
@Димав-ы1п
@Димав-ы1п 11 күн бұрын
а можно видео гле ты показываешь как сделать перезарядку и счетчик патронов, буду очень благодарен
@beh4
@beh4 2 ай бұрын
Мега имба, спасибо
@PragmaGames
@PragmaGames 3 ай бұрын
У тебя сейчас от fps завист как далеко пролетит пуля + лучше использовать лайнкаст и лайнить предыдущую позицию и текущую
@flemi469
@flemi469 3 ай бұрын
извини у меня почему-то руки на нулевые координаты тепаются
@Margnall
@Margnall 4 ай бұрын
чувак ты гений
@Zettth
@Zettth 4 ай бұрын
Меня зацепило, хороший материал. Жаль мало народу увидело.. слышали о ютифай, пишут быстро выведет в рекомендованное видео. В общем желаю подписчиков и роста)
@ANHA-MIASSKIY
@ANHA-MIASSKIY 4 ай бұрын
Не знал, что есть компонент trail render. Хорошая реализация визуала пули. Спасибо за видос
@TMOEG-dv8xh
@TMOEG-dv8xh 4 ай бұрын
Крут, респектую Буду рад видеть тебя в нашем комьюнити
@momentX_
@momentX_ 4 ай бұрын
Как называется редактор из видео?
@flugenkehhannen
@flugenkehhannen 4 ай бұрын
Bullet bulletC = Instantiate(bullet, _shootPosition.position, _shootPosition.Ratation).GetComponent<Bullet>(); а теперь представьте у вас миниган с 6000 выстрелов в минуту т е 100 выстрелов в секунду и например их в игре 5 одновременно. Что будет с игрой на телефоне кто угадает?
@DILLINGER_PUPS
@DILLINGER_PUPS 4 ай бұрын
Слишком много "если" , "может" , "наверное". Все выбирают тот способ который им в данной ситуации подходит , для такой стрельбы которую ты "Представил" - никакой способ кроме обычных рейкастов и парочки спецэффектов которые имитируют такой массивный огонь не подойдёт. Таким образом можно хоть миллиард выстрелов в минуту представить , а толку? Если нигде такого нету , а реализацию стрельбы каждый выбирает исходя из ситуации. Моим методом можно сделать какой-либо рогалик , снайпера или что-то типо того.
@flugenkehhannen
@flugenkehhannen 4 ай бұрын
Блин чувак, если ты не понимаешь, почему не надо делать GetComponent каждый выстрел, то сорян. Для справки - ты можешь спавнить не только Gameobject.
@PragmaGames
@PragmaGames 3 ай бұрын
​​@@flugenkehhannen под капотом unity берет такой же get component при передаче аргументом что-то отличное от gameObject. Это можно проверить самостоятельно. Заспавнить 1000000 game object, а потом взять компонент, сразу заспавнить "компонент". Разница будет во времени обращения к нативному коду * на количество итераций * на издержеку вызова метода.
@stbnsnt
@stbnsnt 4 ай бұрын
А зачем вообще заранее конечную позицию определять? Достаточно же просто направления выстрела пули, и в этом направлении с постоянной скоростью мы ее перемещаем.
@Reygan24
@Reygan24 4 ай бұрын
Созданные пули должны быть видны в игре? Я вижу их только на сцене И почему они очень долго существуют
@tandapanda111
@tandapanda111 5 ай бұрын
Из 30(образно) туториалов по инвентарю это единственный где я понял как он работает, спасибо! Лайк подписка
@DenisFomin
@DenisFomin 5 ай бұрын
А почму ты не используешь физику для полёта пули. т.е. например при выстреле if (bulletPrefab) { Instantiate(bulletPrefab, barrelLocation.position, barrelLocation.rotation).GetComponent<Rigidbody>().AddForce(barrelLocation.forward * shotPower); //Debug.Log(" Выстрелили пулей " + barrelLocation.forward * shotPower); } У пули настроенный риджибоди с включённой гравитацией, массой 10 гр., и сопротивлением воздуха. Это обеспечит параболическую траекторию поли. Скрипт пули без всяких противных корутин, которые вечно могут ломаться в самый не подходящий момент. void FixedUpdate() { CheckCollision(rb.position); previousPosition = rb.position; lifetime -= Time.deltaTime; if (lifetime <= 0) Destroy(gameObject); } private void CheckCollision(Vector3 newPosition) { RaycastHit hit; if (Physics.Linecast(previousPosition, newPosition, out hit, hitLayers)) { EnemyPartHealth enemyPartHealth = hit.collider.GetComponent<EnemyPartHealth>(); if (enemyPartHealth != null) { enemyPartHealth.OnHitDamage(damage, hit.point, hit.normal); Destroy(gameObject); } } } Здесь задана так же время жизни пули.
@DILLINGER_PUPS
@DILLINGER_PUPS 5 ай бұрын
Нормальная реализация стрельбы - это всегда рейкаст или лайнкаст . Попробуй своей пуле сделать скорость полета не 100 единиц , а 10000 единиц и ты поймёшь, что физика не успевает обрабатывать столкновение пули , так как физика обрабатывается в FixedUpdate, и в перерывах между кадрами в FixedUpdate пуля телепортируется по координатам и она может пройти сквозь объект. В моей реализации , невозможен вариант когда пуля пролетает сквозь объект , а полет пули и симуляцию притяжения земли не так сложно сделать .
@DenisFomin
@DenisFomin 5 ай бұрын
@@DILLINGER_PUPS Может я криво объяснил свой подход. 1. обработка столкновений конечно через лайнкаст. Между положением пули в этом кадре и предыдущем. 2. Полёт пули обеспечивается не трансформом, а применением к пули физ. силы. Тем самым мы совмещаем два мира, 100% гарантию обработки столкновения от лучей и красивый полёт от физики. По крайней мере, в моей игре с этой схемой нет проблем, с другими были ))))
@DILLINGER_PUPS
@DILLINGER_PUPS 5 ай бұрын
​@@DenisFomin Так то что я показал в целом почти тоже самое , только симуляцию полёта пули я могу написать сам , так как мне удобно . При помощи физики ты не загнешь полет пули влево или вправо , а вот при помощи кода - да. Есть тонна плюсов использования метода что описан в ролике. Физика не всё может делать корректно как мы хотим, а нам остаётся лишь делать собственную симуляцию.
@artursveshnikov7668
@artursveshnikov7668 5 ай бұрын
Проверь профилировщиком загрузку цп, частый просчёт рэйкаста может прилично загрузить сцену. Как альтернатива, сделать rigit body у пули длинной в 2 метра, а визуальный меш короткий, обычный. Т.е. получается ты метаешь невидимое копьё со шкуркой пули и в каким то из кадров 100% будет пересечение с поверхностью.
@DenisFomin
@DenisFomin 5 ай бұрын
Есть же возможность пускать райкасты в каждом кадре на ограниченное расстояние. Которое вычислить как паролетаемое полей за кадр. Итого, и райкаст проверяет столкновение и визуальная физика не страдает. А ещё можно сделать вот так RaycastHit hit; if (Physics.Linecast(previousPosition, newPosition, out hit, hitLayers)) { Здесь Physics.Linecast используется для определения, произошло ли столкновение между предыдущей и текущей позицией пули.
@DILLINGER_PUPS
@DILLINGER_PUPS 5 ай бұрын
Видео с исправлением всех ошибок данной реализации уже есть на канале)
@skf-wm7ft
@skf-wm7ft 5 ай бұрын
Зачем нужен тернарный оператор в 26 строчке?
@DILLINGER_PUPS
@DILLINGER_PUPS 5 ай бұрын
Гарантия того что не будет NullReference Exception
@LevonSargsyan-q4r
@LevonSargsyan-q4r 5 ай бұрын
Привет можете сделать видео где вы используете Low Poly Shooter Pack и создание противников с ИИ было бы круто
@SLiZER-WHiTE
@SLiZER-WHiTE 5 ай бұрын
Извинитесь, пожалуйста поработайте над своей речью, что бы когда думаете не произносить звук (э), спасибо
@DILLINGER_PUPS
@DILLINGER_PUPS 5 ай бұрын
Стараюсь , но пока выходит скверно , скорей всего в с следующих роликах начну эту шляпу править редактированием вручную, пока не избавлюсь от этой привычки.
@artursveshnikov7668
@artursveshnikov7668 5 ай бұрын
Да нормально он все произносит. Тут тебе не филологический кружок. Можно поставить скорость на 1.5 и вообще незаметно будет. Автор, лучше почаще выпускай такие видосы, и не слушай всяких доморощенных филологов. А дикция сама со временем натренируется. А шляпа, это такие комменты, которые сбивают с цели и вместо полезного контента заставляют заниматься ненужными правками. Для настоящих фанатов игр содержание всегда намного важнее формы
@Fravia-incm
@Fravia-incm 5 ай бұрын
Полностью поддерживаю коммент Артура
@mrgoodkat1135
@mrgoodkat1135 5 ай бұрын
Отличный видос, спасибо! Продолжай в том же духе! Тож немного смутили этот момент..)) но вроде поняу что имеет место быть, хоть и немного нестандартно. А звук в какой момент создается? В момент вылета пули из ствола или при нажатии на курок и как это может повлиять, типа случилась осечка..? А еще, подскажи плз, для топ-даун шутера стоит использовать данную реализации стрельбы или можно что то более простое и адаптивное?
@DILLINGER_PUPS
@DILLINGER_PUPS 5 ай бұрын
В методе самого выстрела создаётся звук , а если хочешь добавить осечку , то надо немного по другому организовывать код, но это тоже очень просто. Для TDS можешь взять эту реализацию , в целом используемо. Ну или можешь юзать простой рейкаст. Зависит лишь от необходимости в проекте. Мой способ реализации предпологает использование в дальнейшем руки + IK . В таком случае всё будет чётко работать.
@mrgoodkat1135
@mrgoodkat1135 5 ай бұрын
@@DILLINGER_PUPS понял, спс!
@DILLINGER_PUPS
@DILLINGER_PUPS 5 ай бұрын
Ссылка на архив с кодом: t.me/unity_assets_world/1972
@psaPGL
@psaPGL 5 ай бұрын
само видео как гайд, зачетное. + тебе в карму. но есть вопрос, - Что за точка попадения?
@DILLINGER_PUPS
@DILLINGER_PUPS 5 ай бұрын
Это называется - безграмотность)
@Speed-Run-Facts
@Speed-Run-Facts 5 ай бұрын
В целом очень даже годная реализация, хорошее видео.
@trij1llo
@trij1llo 5 ай бұрын
Спасибки
@XuSiss
@XuSiss 5 ай бұрын
Привет от Neon Shadow
@АлексейПопович-в2ф
@АлексейПопович-в2ф 5 ай бұрын
Шикарный видос, все понятно и доходчиво🎉
@tuttikfruttik6210
@tuttikfruttik6210 5 ай бұрын
Хорошо, со стеной у тебя всё работает, но что по поводу врагов? Смоделируем ситуацию: Ты выстреливаешь в бегущего врага. Перед выстрелом рейкаст попадает во врага и передает startPoint и endPoint пуле. Затем, когда пуля долетает до endPoint, враг уже успел убежать => тоесть пуля не зарегистрирует врага Я чего то не догоняю?
@DILLINGER_PUPS
@DILLINGER_PUPS 5 ай бұрын
Забыл про эту условность в данном ролике , в следующем ролике про улучшение стрельбы поясню за это.
@tuttikfruttik6210
@tuttikfruttik6210 5 ай бұрын
@@DILLINGER_PUPS Я бы предложил первым рейкастом проверять только объекты на определенном слое, которые точно не будут двигаться (стены например)
@DILLINGER_PUPS
@DILLINGER_PUPS 5 ай бұрын
Так и есть , у оружия надо лишь в стены попадать , но мы сделаем ещё проще , будем передавать пуле стартовую позицию , а конечная точка будет стартовая позиция + стартовая позиция.forward * 500f и даже рейкаст не нужен первый. Он у оружия остался так как стрельба до этого была при помощи обычного рейкаста)
@tuttikfruttik6210
@tuttikfruttik6210 5 ай бұрын
@@DILLINGER_PUPS Ну я полагаю тогда можно обойтись без корутин. Если мы в пуле в старте пропишем Destroy(gameObject, 5f); А в Update будем просто передвигать пулю при помощи transform.Translate(transform.forward * speed * Time.deltaTime); Ну и там же делать проверку рейкастом Я полагаю эффект будет тот же)
@mrgoodkat1135
@mrgoodkat1135 6 ай бұрын
Очень круто! Спасибо за видос! А давай в следующем ролике сделаем визуализацию инвентаря, со всякой сеткой там и чтоб предметики появлялись всяко правильно!)) Если вдруг это не запланировано)) ❤❤❤
@DILLINGER_PUPS
@DILLINGER_PUPS 6 ай бұрын
Да , следующий видос будет про визуализацию инвентаря и парочка видов взаимодействия с ним в UI
@drive6780
@drive6780 5 ай бұрын
@@DILLINGER_PUPS ждёмс💀
@Qwiz_Moment
@Qwiz_Moment 6 ай бұрын
Отличный видос, удачи тебе в продвижение 👍
@Mr_Pride
@Mr_Pride 6 ай бұрын
Круто, контент в кайф
@Timur_OwO
@Timur_OwO 6 ай бұрын
Большое спасибо за туториал:3
@Timur_OwO
@Timur_OwO 6 ай бұрын
Офигенный ролик,Сделай пожалуйста инвентарь в юнити:)
@liquid_name1068
@liquid_name1068 6 ай бұрын
Поддерживаю идею с инвентарём
@DILLINGER_PUPS
@DILLINGER_PUPS 5 ай бұрын
Видео же есть на канале : kzbin.info/www/bejne/d6ayZWZjgd6lnJY
@x300-i3p
@x300-i3p 6 ай бұрын
попадАние, бро :D
@nobice1
@nobice1 6 ай бұрын
9:30 - ахахаах, вынесло с этого момента xD Но видос всё равно полезный, спасибо
@DILLINGER_PUPS
@DILLINGER_PUPS 6 ай бұрын
Я ж сказал заранее) - ступор мозговины иногда ловлю. Написать написал, пока тяжеловато с объяснением)
@lyten4287
@lyten4287 6 ай бұрын
@@DILLINGER_PUPS ахахаха
@mrgoodkat1135
@mrgoodkat1135 6 ай бұрын
Каеф, вот это магия! Спасибо! а мона еще вот такихвота прикольных механик!!))
@DILLINGER_PUPS
@DILLINGER_PUPS 6 ай бұрын
Мона)
@DILLINGER_PUPS
@DILLINGER_PUPS 6 ай бұрын
Скрипты из урока t.me/unity_assets_free_main/1819
@WeLoveCreatingGames
@WeLoveCreatingGames 6 ай бұрын
Отличный ролик) ❤‍🔥🔥 В будущем стоит придумать ограничительные рамки по времени) Без потери информации и качества. Разбивать на части и, может даже по каким-то пунктам уделять больше информации, объясняя, что такое интерфейс, что такое ивенты, почему делаем так, а не по-другому и как можно сделать иначе, если ситуация другая) Разбить на части,если тема большая получается, то создать плейлист с названием "Unity - добавление интерактивности (часть 1)" и т.д... За примерами или терминологией можно к GPT обратиться ну или по старинке к мануалу или туда и туда, просто бывает у GPT плохо с примерами получается, а дальше уже в основном проекте как пример показывать (который для ролика актуальный по теме).😉😉😉
@asli9152
@asli9152 6 ай бұрын
Делать системы и инструментарий - это самый лучший способ выучить скриптинг. Хорошее начало)
@unityrututorials1327
@unityrututorials1327 6 ай бұрын
Как по мне всё сильно усложнено, это всё можно сделать в одном скрипте, с одним триггером, хотя даже триггер не нужен, можно по тегу юзать объект или по имени. Но это кому как удобно. Открыта закрыта простым bool отслеживать. Самое полезное что я для себя подчерпнул, так это addcompanent ))). А так в целом не плохое начало, Замечания 1. звук тихий 2.шрифт мелкий в студии. Продолжай в том же духе!
@DILLINGER_PUPS
@DILLINGER_PUPS 6 ай бұрын
Ну для каждого объекта писать такие скрипты взаимодействия - это же лишнее нагромождение, а тут через 1 интерфейс можно огромное количество взаимодействий сделать . Система ограничена лишь фантазией использующего. Так же можно дописать кучу разных модулей.
@unityrututorials1327
@unityrututorials1327 6 ай бұрын
@@DILLINGER_PUPS Ну так то да! Да норм всё!!!
@СергейИгоревич-х8э
@СергейИгоревич-х8э 6 ай бұрын
ты крут продолжай делится полезной информацией для чайников и не чайников)))
@Igor-Demchuk
@Igor-Demchuk 6 ай бұрын
Это простой советский интерфейс. Объясняй, пожалуйста, базово, что делаешь, для чего, что такое интерфейс и т.п. Спасибо!
@mrgoodkat1135
@mrgoodkat1135 6 ай бұрын
Спасибо за крутой ролик! Оч прикольные штуки! Урок вышел отличным, не переживай!)) Продолжай в том же духе! Жду следующий видос!)))
@Igor-Demchuk
@Igor-Demchuk 6 ай бұрын
Очень тихий звук, дружище.
@dragon00087
@dragon00087 6 күн бұрын
Норм вроде-бы
@galinkakuz
@galinkakuz 6 ай бұрын
Надо шрифт немного побольше в вижуал Студио сделать
@galinkakuz
@galinkakuz 6 ай бұрын
Игрок похож на ингалятор 😅❤