Деформация единства сетки со столкновениями - PullRequest
0 голосов
/ 29 августа 2018

Как получить доступ к 2D-сетке спрайта по коду, а затем изменить форму спрайта?

Я хочу сделать игру, похожую на Агарио

Мне просто было интересно, как достичь этой формы желе при прикосновении к объектам либо столкновениями, либо триггерами?

Я хотел бы увидеть больше ответов.

Ответы [ 2 ]

0 голосов
/ 01 сентября 2018

Масштабирование не даст вам желаемых деформаций. Кодирование деформаций, как это делает agar.io с нуля, довольно сложно. Я вижу несколько способов сделать это, поэтому я собираюсь перечислить их от наиболее рекомендуемых до наименее рекомендуемых:

  1. Начните с плоской трехмерной сетки и визуализируйте на ней свой спрайт как текстуру, чтобы вы в основном получили рекламный щит. Затем используйте события столкновения, чтобы получить контактные точки , и используйте математику, чтобы выяснить, как перемещать вершины сетки в ответ на контакт. Вы можете видеть, как кто-то достигает этого эффекта здесь и , вы можете увидеть полное руководство по сфере здесь , очень рекомендуемое чтение . Ваша идея получить линию от центра круга через контактную позицию и уменьшить ее длину звучит разумно, хотя реализация немного сложнее, чем если вы хотите, чтобы она вела себя как agar.io.

  2. Get Anima2D , бесплатный ресурс, который может, среди прочего, конвертировать спрайты в меши. Затем снова используйте события столкновения, чтобы получить точки контакта и исказить сетку.

  3. Используйте Anima2D или другой ресурс с эквивалентными возможностями и выясните, как использовать 2D-кости, чтобы получить что-то вроде эффекта agar.io. Вы также можете попробовать 3D-кости на сетке «самолет / билборд».

  4. Отправка данных о коллизиях в вершинный шейдер, который запрограммирован для деформации объекта, который он рендерит.

0 голосов
/ 01 сентября 2018

вы можете связаться с игровыми объектами с помощью функции триггера. Эта функция работает автоматически с именами тегов GameObject. Вот как вы можете получить Функция триггера

А также вы можете изменять размер GameObjects, когда они касаются друг друга Подробнее о масштабировании

вы можете закодировать практически все, что захотите, а вот примерно Сетка спрайта

...