На той неделе задался вопросом использования вектора в unity.
И для начала пару тезисов отвечающих на вопрос «зачем»
- Наилучшее отображение при скейле
- Возможность изменять графику не выходя из юнити
- Меньший вес
Сразу скажу, что на данный момент использовать svg в игре будет сложно, но так как исследования мною были произведены, то должен доложить об обстановке.
Первый стул
Во-первых юнитеки представили свое решение под названием Vector Graphics — работает как нужно в плане отображения графики, но на этом плюсы заканчиваются. Сам плагин выводит svg в виде компонента SpriteRenderer и к нему крепит материал с шейдером для отображения. Удобно что, это вклинивается в экосистему.
Шейдер unlit’овский, если вам понадобится настроить освещение для картинки — то нужно будет расковырять исходники и как-то там освоиться. Никаких доп фишек нет, подвигать точки не выйдет (опять же, все реально, но это нужно разбираться лет 20). В общем, все что выйдет — отобразить svg картинку без потерь качества.
Однако, стоит сказать, что вместе с этим появилось API для создания векторов, там еще как-то css можно притянуть. Это уже более нужная вещь, можно линию нарисовать и подвигать в реалтайме — в хозяйстве пригодится. В видео можно оценить все возможности на сегодняшний день.
Второй стул
Дальше, если начать копать по этой теме, то можно выйти на ассет SVG Importer — который стоит аж 60$, но по функционалу он сильно опередил Юнити. Все что вы можете представить — там уже есть. Есть возможность изменять любые изображения в реалтайме через API, также автор сделал набор фильтров, к примеру blur. Есть поддержка UI и скрипты для покадровой анимации. Автор позаботился даже о стартаперах и сделал пример использования в VR.
На этом ассете сделали несколько игр. Казалось бы, выбор очевиден, но в 2016 автор ушел в депрессию, а последнее обновление было 4 августа 2017 — не так давно, но нужно задуматься. Что-то уже может не работать и рассчитывать на поддержку не стоит. Сам я написал автору неделю назад, но ответа не получил.
Есть еще одна деталь, которая в конце концов отговорила меня от идеи использования этого ассета. В интернетах (в доках вк) мне удалось найти этот ассет первой версии. После теста, оказалось, что качество отображения градиентов значительно хуже чем у решения от Юнити, возможно, это было исправлено в следующих версиях, но как это узнать не потратив 60$?
Итоги
Использовать векторную графику сейчас лучше всего не для игр, а чего-то более простого. Стоит помнить, что расплатой за маленький вес будет нагрузка на CPU. Также, Юнити ставят в неудобное положение, сами они делают хорошие плагины и их использование приоритетное , но чаще всего функционал недоделан и когда будет сделан — не известно.
Если в ваши цели входит изменение ландшафта в 2D игре — то попробуйте возможности Sprite Shape, тоже от unity.
P.S.
Канал в телеге @nrjwolf_live