Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }