Четверг, 28 Марта 2024, 15:51

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 2
  • 1
  • 2
  • »
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Реалистичная граната
Реалистичная граната
robertonoДата: Суббота, 21 Июня 2014, 00:40 | Сообщение # 1
Чокнутый Кот
Сейчас нет на сайте
Всем привет! И с вами снова я со своими тупыми вопросами с желанием сделать убицу срусиса 4 и батлы 5.

Короче. Я думаю ответ пригодится может кому то ещё, ибо в гугле я ничего не нашел, так что подумаем вместе.
Вообщем нужно реализовать реалистичную гранату. Вопрос не о её полёте. А о самом взрыве.
Самый простой взрыв, а именно урон по врагам проще всего сделать с помощью Physics.OverlapSphere();
Т.е. сфера с определенным радиусом, и всё что в неё попадет получит урон.

Но такая концепция меня не устраивает, т.к. меня очень бесит когда в таких играх тебя убивают сквозь стену гранатой.
Вопрос.
Как сделать реалистичную гранату?

Взгляните на моё произведение искусства (дада, на эту фигню сделанную в паинте).
Красная точка - точка взрыва гранаты.
Потом стена.
А зеленый это наш игрок.
Вообщем как сделать это?

У меня была идея сделать как то частицами, но это чисто идея.


Сообщение отредактировал robertono - Суббота, 21 Июня 2014, 00:41
PovstalezДата: Суббота, 21 Июня 2014, 01:16 | Сообщение # 2
постоянный участник
Сейчас нет на сайте
Используй Physics.OverlapSphere();
Если в сфере есть игрок - пускай к нему рейкаст, если на пути нету ничего - отнимаем жизни)
DalyДата: Суббота, 21 Июня 2014, 01:34 | Сообщение # 3
постоянный участник
Сейчас нет на сайте
Цитата Povstalez ()
Используй Physics.OverlapSphere();
Если в сфере есть игрок - пускай к нему рейкаст, если на пути нету ничего - отнимаем жизни)

Хитро
robertonoДата: Суббота, 21 Июня 2014, 01:45 | Сообщение # 4
Чокнутый Кот
Сейчас нет на сайте
Кстати да, это походу и есть самое простое решение)
Поискав в гугле по лучше я нашел ответы.
И вот это как раз моя тема
http://answers.unity3d.com/questio....io.html
Наверно я могу сказать, что тема закрыта)
Storm54Дата: Суббота, 21 Июня 2014, 01:56 | Сообщение # 5
постоянный участник
Сейчас нет на сайте
Если рассмотреть принцип работы осколочной гранаты, то становится понятно, что смоделировать урон, наносимый ей, достаточно просто. Нужно пустить пару сотен рейкастов во все стороны и те, которые попадут в игрока и будут являться признаком нанесения урона. Чтобы чуть снизить нагрузку, можно использовать корроутины.
robertonoДата: Суббота, 21 Июня 2014, 02:05 | Сообщение # 6
Чокнутый Кот
Сейчас нет на сайте
Storm54, мне кажется ты не можешь претендовать на самого лучшего программиста - оптимизатора smile
Впринципе идея неплохая наверно, но мне сейчас такие точности не нужны, сгодится и вариант предложенный Povstalez.
Storm54Дата: Суббота, 21 Июня 2014, 02:30 | Сообщение # 7
постоянный участник
Сейчас нет на сайте
Цитата robertono ()
мне кажется ты не можешь претендовать на самого лучшего программиста - оптимизатора

В данном вопросе про оптимизацию никакой речи не было, стоял вопрос реалистичности. Да и если использовать даже 300 рейкастов во время взрывов(которые происходить скорее всего будут максимум один раз за секунду), то производительность это не посадит(у тебя там сотни всяких кубов рушатся, а ты тут зажал 300 лучей)

Цитата
сгодится и вариант предложенный Povstalez.

Одним лучом в некоторых вариантах не обойтись, например, если игрок будет стоять за каким-нибудь укрытие с отверстием.


Сообщение отредактировал Storm54 - Суббота, 21 Июня 2014, 02:31
robertonoДата: Суббота, 21 Июня 2014, 02:36 | Сообщение # 8
Чокнутый Кот
Сейчас нет на сайте
Storm54, ну да, проблемка..
А как пустить во все стороны рейкаст? По сфере как будто.
DantorSДата: Суббота, 21 Июня 2014, 02:50 | Сообщение # 9
заслуженный участник
Сейчас нет на сайте
robertono, одному мне какжется что рэйкастом не вариант, т.к. рэйкаст это луч, а луч он бесконечный (т.е. пока не упрется в стену)
robertonoДата: Суббота, 21 Июня 2014, 03:08 | Сообщение # 10
Чокнутый Кот
Сейчас нет на сайте
DantorS, Ray с фиксированной длиной никто не отменял. Да и Raycast тоже имеет длину (можно получить длину луча из RaycastHit info).
allodsДата: Суббота, 21 Июня 2014, 06:30 | Сообщение # 11
почти ветеран
Сейчас нет на сайте
Осколки сделать мешь партиклями и включить коллизию, если коллизия с игроком то наносим урон .Как вариант

Добавлено (21.06.2014, 06:30)
---------------------------------------------
Я так делал огнемет=) если партикля огня соприкасается с игроком значит на него попадает огонь, чем больше коллизий с игроком, тем больше его жарит и больше крона .

lentinantДата: Суббота, 21 Июня 2014, 10:59 | Сообщение # 12
ленивый программист
Сейчас нет на сайте
Цитата robertono ()
А как пустить во все стороны рейкаст? По сфере как будто.

Можно двойным циклом по сферической системе координат.


Когда-то тут будут ссылки на крутые проекты. Или нет.
romgermanДата: Суббота, 21 Июня 2014, 11:50 | Сообщение # 13
старожил
Сейчас нет на сайте
robertono, есть Physics.SphereCast. Почаще в доки заглядывай, там много чего интересного.
robertonoДата: Суббота, 21 Июня 2014, 12:06 | Сообщение # 14
Чокнутый Кот
Сейчас нет на сайте
romgerman, почитал про него, но не очень понял. Когда домой приду постараюсь разобраться подробнее..
lentinantДата: Суббота, 21 Июня 2014, 13:10 | Сообщение # 15
ленивый программист
Сейчас нет на сайте
romgerman, и как же тут поможет сферический рейкаст? Это же просто аналог рейкаста, только вместо линии, у нас труба с округленными торцами.

Когда-то тут будут ссылки на крутые проекты. Или нет.
romgermanДата: Суббота, 21 Июня 2014, 13:18 | Сообщение # 16
старожил
Сейчас нет на сайте
lentinant, каким образом будет труба, если сферический?
TiodorДата: Суббота, 21 Июня 2014, 13:26 | Сообщение # 17
участник
Сейчас нет на сайте
romgerman, Physics.SphereCast вроде как по форме таблетки или я ошибаюсь?

VK: Tiodor
DantorSДата: Суббота, 21 Июня 2014, 13:42 | Сообщение # 18
заслуженный участник
Сейчас нет на сайте
Tiodor, в форме сферы. В форме таблетки - это capsulecast
allodsДата: Суббота, 21 Июня 2014, 15:05 | Сообщение # 19
почти ветеран
Сейчас нет на сайте
Цитата DantorS ()
в форме сферы. В форме таблетки - это capsulecast

Я думаю он имел в виду сплюснутой круглой таблетки
lentinantДата: Суббота, 21 Июня 2014, 20:03 | Сообщение # 20
ленивый программист
Сейчас нет на сайте
romgerman, как я уже сказал, сферический рейкаст просто тип рейкаста, где вместо точки используется сфера.

Обычный рейкаст - запускаем из точки A в направлении точки B абстрактную "пулю" нулевого размера. Если пуля куда-то попадет - возвращаем true. В сферическом же рейкасте мы запускаем шар определенного радиуса, но действует он точно также, как и обычный рейкаст - просто возвращает true, если шар на что-то натыкается (в объемном представлении это будет похоже на трубу с полусферами на концах, на что я и указал). Капсульный рейкаст отличается только тем, что там капсула. Используются они, в основном, для того, чтобы узнать, к примеру, пролезет ли персонаж в проход.

И я не вижу ну никакого смысла использовать его тут.


Когда-то тут будут ссылки на крутые проекты. Или нет.

Сообщение отредактировал lentinant - Суббота, 21 Июня 2014, 20:06
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Реалистичная граната
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

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