VectorGraphics Unity3d - получить ссылку на импортированный SVG в коде - PullRequest
0 голосов
/ 27 марта 2019

Я использую пакет векторной графики Unity для импорта простого SVG с 3 фигурами.

Импорт успешно работает:

enter image description here

Однако после импорта - как получить ссылку на svg - чтобы я мог изменять формы и заливки?

В документации показано, как визуализировать (после внесения изменений), но я не понимаю, как сначала получить ссылку на импортированный svg?

Достаточно было бы увидеть какой-нибудь пример кода, который был реализован, но я не могу найти его в Интернете.

1 Ответ

0 голосов
/ 27 марта 2019

Способ сделать это - проанализировать файл SVG, чтобы получить векторное представление файла (векторную сцену), после чего вы можете изменить любые свойства перед тесселяцией. Например:

string svg =
    @"<svg xmlns=""http://www.w3.org/2000/svg"" xmlns:xlink=""http://www.w3.org/1999/xlink"" viewBox=""0 0 216 216"">
       <g>
           <polygon id=""Poly1"" points=""...""/>
       </g>
   </svg>";

// Import the SVG at runtime
var sceneInfo = SVGParser.ImportSVG(new StringReader(svg));
var shape = sceneInfo.NodeIDs["Poly1"].Shapes[0];
shape.Fill = new SolidFill() { Color = Color.red };

// Tessellate
var geoms = VectorUtils.TessellateScene(sceneInfo.Scene, tessOptions);

// Build a sprite
var sprite = VectorUtils.BuildSprite(geoms, 10.0f, VectorUtils.Alignment.Center, Vector2.zero, 128, true);
GetComponent<SpriteRenderer>().sprite = sprite;

См. Исходный ответ

...