Вторник, 23 Апреля 2024, 10:05

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 2
  • 1
  • 2
  • »
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Пуля
Пуля
SkmaestroДата: Четверг, 31 Октября 2013, 23:43 | Сообщение # 1
участник
Сейчас нет на сайте
Всем привет
Очень интересно как сделать эффективную пулю-(, не в эффектах дело)
я делал свыше 5 вариантов но не получается, просто хочу чтобы было(неограниченная скорость, Падение, реально можно заметить как она летит а не тп в точку...)
но не как не могу собрать все в одно, то скорость то что нада, тогда пролетает сквозь что-то
то все что нада но она тп
- rigidbody На addforce свыше 10.000 просто проходит сквозь куб 2х2х2
подумал сделать на raycast + delta time, но может кто делал по другому?


Помог поставь +
Проект DeadWorldZ пока заморожен иными словами разрабатывается скрытно
Skype: Skmaestro867
shizofrenДата: Пятница, 01 Ноября 2013, 00:01 | Сообщение # 2
Starting MS-DOS...
Сейчас нет на сайте
Делайте обычный куб (без коллайдера). Впереди куба выставляйте луч длиной не больше 0.1. Это удобно, например, для такого эффекта как прохождение сквозь некоторые препятствия (деревянные доски). Ну и естественно, направляйте пулю через трансформДирекшн вперед и вниз. Также выпускайте луч с направлением down той же длины, чтобы проверять, не соприкоснулась ли пуля с землей. Изменяйте скорость движения вниз и вперед в зависимости от некоторых факторов, допустим того же самого прохождения через деревянную стенку. Хоть данный алгоритм и кажется сложным, но работать оно будет намного быстрее, чем юньковская физика. Еще с таким подходом очень легко отследить события, которые происходят с объектом. Лично я в этом вижу больше преимуществ перед методом ригидбоди. Ну и конечно же, мало кто в серьезных проектах использует юньковскую физику, именно rigidbody.

Моя команда
robertonoДата: Пятница, 01 Ноября 2013, 01:18 | Сообщение # 3
Чокнутый Кот
Сейчас нет на сайте
shizofren, Как Вы вовремя) Мне как раз это нужно было и как раз пролетали пули через объекты. Спасибо!
shizofrenДата: Пятница, 01 Ноября 2013, 09:40 | Сообщение # 4
Starting MS-DOS...
Сейчас нет на сайте
robertono, рад помочь.

Моя команда
robertonoДата: Пятница, 01 Ноября 2013, 14:22 | Сообщение # 5
Чокнутый Кот
Сейчас нет на сайте
shizofren, а может стоит лучше пускать физикой пули для реалистичности их полёта, а уже проверять столкновение лучами? Мне предлагали когда то.

Сообщение отредактировал robertono - Пятница, 01 Ноября 2013, 14:22
allodsДата: Пятница, 01 Ноября 2013, 17:03 | Сообщение # 6
почти ветеран
Сейчас нет на сайте
Цитата robertono ()
shizofren, Как Вы вовремя) Мне как раз это нужно было и как раз пролетали пули через объекты. Спасибо!

Еще в твоей теме я советовал пускать рейкаст из пули, ну да ладно.
robertonoДата: Пятница, 01 Ноября 2013, 17:04 | Сообщение # 7
Чокнутый Кот
Сейчас нет на сайте
allods, помню, но как то не придал к этому серьезности...
shizofrenДата: Суббота, 02 Ноября 2013, 15:51 | Сообщение # 8
Starting MS-DOS...
Сейчас нет на сайте
Цитата robertono ()
пускать физикой пули

Она будет останавливаться при любом препятствии. Еще в юнити очень медленная физика, очень сажает FPS.


Моя команда
allodsДата: Воскресенье, 03 Ноября 2013, 01:55 | Сообщение # 9
почти ветеран
Сейчас нет на сайте
Цитата shizofren ()
Еще в юнити очень медленная физика, очень сажает FPS.


Да уж лучше через transform менять просто высоту
robertonoДата: Воскресенье, 03 Ноября 2013, 02:08 | Сообщение # 10
Чокнутый Кот
Сейчас нет на сайте
Цитата shizofren ()
Она будет останавливаться при любом препятствии.

это верно, особенно когда хочешь сделать прострел через объекты...
nwsxДата: Среда, 04 Декабря 2013, 13:38 | Сообщение # 11
постоянный участник
Сейчас нет на сайте
чтобы rigidbody пуля не пролетела мимо цели, нужно делать небольшые проверки каждые несколько кадров.

сохранять положение пули, и делать лайнкаст от текущего положения до преведущего.

думаю рейкаст пули удобны в том случае, если в вашей игре все проджектайлы достигают цели мгновенно и их самих не должно быть видно.

Цитата
это верно, особенно когда хочешь сделать прострел через объекты...

коллайдеру пули Is Trigger можно включить и оттуда плясать.

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

Добавлено (04.12.2013, 13:29)
---------------------------------------------
Цитата shizofren ()
Еще в юнити очень медленная физика, очень сажает FPS.

юнити вроде использует PhysX нвидии, значит всё должно быть отлично.
единственное с чем столкнулся - rigidbody регдолов не переходят в спящее состоянее, ни при каких настройках физики и материалов. пришлось скрипт писать чтобы их усыплять

Добавлено (04.12.2013, 13:38)
---------------------------------------------

Цитата robertono ()
а уже проверять столкновение лучами
лол. OnCollisionEnter же есть


Westboro
Dungeon Journey на Google Play


Сообщение отредактировал nwsx - Среда, 04 Декабря 2013, 13:29
allodsДата: Среда, 04 Декабря 2013, 13:51 | Сообщение # 12
почти ветеран
Сейчас нет на сайте
Цитата nwsx ()
рейкаст пули удобны в том случае, если в вашей игре все проджектайлы достигают цели мгновенно

Щита? А нельзя рейкаст кинуть на 0,2 в перед от пули
nwsxДата: Среда, 04 Декабря 2013, 14:00 | Сообщение # 13
постоянный участник
Сейчас нет на сайте
твой способ это велосипед

Westboro
Dungeon Journey на Google Play
robertonoДата: Среда, 04 Декабря 2013, 18:14 | Сообщение # 14
Чокнутый Кот
Сейчас нет на сайте
А вот знаете.. Не один из вас двоих не прав.. Может я где то накосячил, но я попробовал 2 варианта:
1) Отсылать от пули луч
2) Проверять OnCollisionEnter
И знаете что самое интересное ? Не один из них не работает качественно.
Луч вызывается каждый кадр. Колижн энтр не знаю когда, но наверно тоже каждый кадр. Пуля летит настолько быстро что во время перехода на следующий кадр пуля уже пролетает через объект и изза её скорости она даже игнорирует другие объекты.
В rigidbody есть параметр какой то, где есть 3 варианта. И какой то из них предназначен для объектов которые движутся очень быстро, в доках юнити было написано что это хорошо подходит для пуль. Однако даже это меня не спасает. Так что хотелось бы продолжить эту тему)
nwsxДата: Среда, 04 Декабря 2013, 18:24 | Сообщение # 15
постоянный участник
Сейчас нет на сайте
OnCollisionEnter срабатывает когда коллайдер объекта сопрекасается с другим коллайдером - это не каждый кадр

по поводу пролетаний мимо
Цитата
сохранять положение пули, и делать лайнкаст от текущего положения до преведущего.

я тут не шутил. я так и сделал - у меня в игре пули мимо не пролетают и летят быстро.

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


Westboro
Dungeon Journey на Google Play
robertonoДата: Среда, 04 Декабря 2013, 18:48 | Сообщение # 16
Чокнутый Кот
Сейчас нет на сайте
nwsx, всё равно oncollisionenter не улавливает коллайдер и пролетает мимо. И сам rigidbody игнорирует коллайдеры
ЛевшаДата: Среда, 04 Декабря 2013, 18:56 | Сообщение # 17
почти ветеран
Сейчас нет на сайте
Длина колайдера должна быть больше чем путь проходимый за один кадр.

X.cor.R (Prologue)
allodsДата: Среда, 04 Декабря 2013, 19:01 | Сообщение # 18
почти ветеран
Сейчас нет на сайте
Цитата Левша ()
Длина колайдера должна быть больше чем путь проходимый за один кадр.

Да но сильно большая скорость с большим коллайдером, иногда может получатся так что пуля будет срабатывать намного раньше чем хотелось а иногда уже за целью
nwsxДата: Среда, 04 Декабря 2013, 19:12 | Сообщение # 19
постоянный участник
Сейчас нет на сайте
Цитата robertono ()
nwsx, всё равно oncollisionenter не улавливает коллайдер и пролетает мимо. И сам rigidbody игнорирует коллайдеры

я ж говорю, чтоб мимо не пролетало, раз в 5 кадров сохраняй позицию пули в переменную, а сам проверяй, если что-нибудь между предыдущим положением и текущим.
Если есть, значит пуля пролетела мимо, а ты взяв RaycastHit узнаешь где тебе нужно нарисовать дырку от пули и партиклов напускать.

Добавлено (04.12.2013, 19:12)
---------------------------------------------
Цитата allods ()
Да но сильно большая скорость с большим коллайдером, иногда может получатся так что пуля будет срабатывать намного раньше чем хотелось а иногда уже за целью

да ещё это расстояние(путь пули за один кадр) и от фрейм рейта зависеть будет


Westboro
Dungeon Journey на Google Play


Сообщение отредактировал nwsx - Среда, 04 Декабря 2013, 19:21
ЛевшаДата: Среда, 04 Декабря 2013, 19:54 | Сообщение # 20
почти ветеран
Сейчас нет на сайте
Цитата nwsx ()
расстояние(путь пули за один кадр) и от фрейм рейта зависеть будет

Не будет. smile


X.cor.R (Prologue)

Сообщение отредактировал Левша - Среда, 04 Декабря 2013, 19:54
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Пуля
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг