private void GenerateVectorImageAsset(AssetImportContext ctx, List <VectorUtils.Geometry> geometry, string name) { UnityEngine.Object asset; Texture2D texAtlas; VectorImageUtils.MakeVectorImageAsset(geometry, GradientResolution, out asset, out texAtlas); if (asset == null) { Debug.LogError("UIElement asset generation failed"); return; } if (texAtlas != null) { texAtlas.name = name + "Atlas"; } ctx.AddObjectToAsset("uiAsset", asset); if (texAtlas != null) { ctx.AddObjectToAsset("tex", texAtlas); } ctx.SetMainObject(asset); }
internal static Texture2D BuildPreviewTexture(UnityEngine.Object obj, int width, int height) { Texture2D previewTex = null; var sprite = SVGImporter.GetImportedSprite(obj); if (sprite != null) { var mat = SVGImporter.CreateSVGSpriteMaterial(sprite); previewTex = VectorUtils.RenderSpriteToTexture2D(sprite, width, height, mat, 4); Material.DestroyImmediate(mat); } #if UNITY_2019_3_OR_NEWER else { Vector2[] vertices = null; UInt16[] indices = null; Vector2[] uvs = null; Color[] colors = null; Vector2[] settingIndices = null; Texture2D atlas = null; Vector2 size = Vector2.zero; InternalBridge.GradientSettingsBridge[] settings = null; if (InternalBridge.GetDataFromVectorImage(obj, ref vertices, ref indices, ref uvs, ref colors, ref settingIndices, ref settings, ref atlas, ref size)) { var mat = SVGImporter.CreateSVGSpriteMaterial(atlas != null); previewTex = VectorImageUtils.RenderVectorImageToTexture2D(obj, width, height, mat, 4); Material.DestroyImmediate(mat); } } #endif return(previewTex); }