Рисование в Unity с использованием C#

#c# #unity3d

#c# #unity3d

Вопрос:

В настоящее время у меня есть приложение WinForms C #. У меня есть текстовый файл с GPS-координатами некоторых точек (границ зданий, дорог и т.д.), И, используя Graphics.FillPolygon метод in System.Drawing , я рисую их на . Panel Однако у меня возникла идея, что для того, что я пытаюсь сделать (по сути, это 2D-игра), проект Unity 2D был бы более подходящим и простым в использовании (в основном из-за упрощения обработки изображений с помощью камер). Однако я не знаю, как сделать этот рисунок в нем. Мне просто нужно как-то нарисовать эти координаты в Unity, но я не знаю, как это сделать.

Примечание: у меня уже есть небольшой опыт работы с 3D в Unity, но я новичок в 2D. Спасибо

Комментарии:

1. (подразумеваемый) вопрос слишком широкий — что именно вы пробовали? Что вам нужно нарисовать? Вы читали 2d-учебник и рассматривали возможность использования спрайтов?

2. Из того, что я понял, спрайты предназначены для готовой растровой графики. У меня этого нет, у меня есть только координаты. То, что я ищу, было бы эквивалентом Graphics.FillPolygon метода. Я думал, скажем, о создании куба и рисовании на нем в виде текстуры, но также не представлял, как это сделать.

3. Чтобы упростить ситуацию, предположим, у меня было бы три прямоугольника, у меня были бы пиксельные координаты их краев, и я хотел бы их отобразить. Как?

Ответ №1:

В Unity нет встроенной реализации GDI / canvas. Рисовать их в растрированном 2D было бы довольно сложно в Unity (в основном на уровне putpixel или найти какую-нибудь стороннюю библиотеку).

Однако у вас есть альтернатива — вы можете рисовать эти фигуры в 3D, игнорируя третье измерение. Для этого есть несколько методов:

  1. Средства визуализации линий — это будет проще всего, но забудьте о чем-либо еще, кроме простого рисования контура, без заливки и т. Д.

  2. Создайте свою собственную сетку — это позволит вам использовать геометрию в вашей сцене. Это API с сохраненным режимом (вы вводите свою геометрию один раз)

  3. Используйте пространство имен GL — это будет отображаться только на экране, без взаимодействия со сценой. Это API в режиме immidiate (рисует все в каждом кадре)