Реалистичная граната
|
|
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, мне кажется ты не можешь претендовать на самого лучшего программиста - оптимизатора Впринципе идея неплохая наверно, но мне сейчас такие точности не нужны, сгодится и вариант предложенный 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 |
|
| |