Как добавить коллайдеры в сложный лабиринт - PullRequest
5 голосов
/ 24 мая 2019

Я скачал спрайт-лабиринт для неиспользованной цели, чтобы использовать его в своей игре, и я пытаюсь добавить коллайдеры к стене. Но поскольку лабиринт сложен, достаточно добавить коллайдера Box 2D к каждой стене.

Я попытался использовать коллайдер 2D Polygon, и это был какой-то неточный меш, выглядящий как коллайдер. Есть ли лучший способ добавить коллайдеры в лабиринт или это можно сделать программным путем, добавив коллайдеры, каким-то образом обнаружив структуру лабиринта?

Вот что-то похожее на лабиринт, которым я пользуюсь:

Добавить комментарий

1 Ответ

1 голос
/ 24 мая 2019

Есть несколько ответов на этот вопрос, в зависимости от вашего подхода.

1.Подход на основе спрайтов (где у вас есть изображение лабиринта)
Убедитесь, что спрайт прозрачный и непрозрачный только на областях стены (изображение PNG может иметь прозрачность).После того, как вы это сделаете, вы сможете прикрепить многоугольный коллайдер для автоматического создания коллайдера.Если изображение слишком большое / сложное, как вы сказали, вы можете разделить его на несколько разных изображений (например, на 4 квадранта), а затем расположить их и прикрепить многоугольный коллайдер к каждому объекту.В общем, чем проще коллайдер, тем он точнее и эффективнее.

Недостатком вышеупомянутого подхода является то, что вам приходится выполнять много ручной работы.Если вы знали, что у вас было много нарисованных от руки лабиринтов, для которых вам понадобилось бы создавать коллайдеры для этого, возможно, стоило бы автоматизировать процесс, описанный выше, с помощью сценария, но это может быстро усложниться, если вы не знаете, что вам нужно ».делаешьПо сути, скрипт автоматизации может рекурсивно разделить спрайт на квадранты, создать соответствующий GameObjects и добавить PolygonColliders к каждому из них.

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

2.Подход, основанный на алгоритмах
К счастью, в Интернете есть много учебных пособий по лабиринту.Большинство из них предназначены для 3D-лабиринтов, но логика та же, что и для создания 2D-лабиринтов.Если вам интересна эта опция, то я нашел учебники по теме здесь и здесь .Чтобы добавить столкновение после создания лабиринта в каждом из этих руководств, вы можете добавить BoxCollider2D к каждой стороне каждой ячейки, в которой есть стена (или, если вы используете префаб, добавьте BoxCollider2D к префабу).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...