using System.Collections; using System.Collections.Generic; using System.IO; using System.Threading.Tasks; using UnityEngine; using UnityEngine.UI; using TcgEngine.UI; namespace TcgEngine { /// /// Use this export all your cards to png images (so they have the stats/ui on top of the card) /// public class CardExporter : MonoBehaviour { public string export_path = "C:/CardsExport"; public int width = 856; public int height = 1200; public VariantData variant; [Header("References")] public Camera render_cam; public CardUI card_ui; private RenderTexture texture; private Texture2D export_texture; void Start() { if (variant == null) variant = VariantData.GetDefault(); GenerateAll(); } private async void GenerateAll() { QualitySettings.SetQualityLevel(QualitySettings.names.Length -1); //Set Max Quality level texture = new RenderTexture(width, height, 0, RenderTextureFormat.ARGB32); export_texture = new Texture2D(width, height, TextureFormat.ARGB32, false); texture.filterMode = FilterMode.Point; export_texture.filterMode = FilterMode.Point; render_cam.targetTexture = texture; render_cam.orthographicSize = height / 2; List cards = CardData.GetAll(); for (int i = 0; i < cards.Count; i++) { CardData card = cards[i]; if (card.deckbuilding) { ShowText("Exporting: " + card.id); GenerateCard(card); await TimeTool.Delay(1); ExportCard(card); await TimeTool.Delay(2); } } ShowText("Completed!"); } private void GenerateCard(CardData card) { card_ui.SetCard(card, variant); render_cam.Render(); } private void ExportCard(CardData card) { RenderTexture.active = texture; export_texture.ReadPixels(new Rect(0, 0, width, height), 0, 0); byte[] bytes = export_texture.EncodeToPNG(); string file = card.id + ".png"; File.WriteAllBytes(export_path + "/" + file, bytes); RenderTexture.active = null; } private void ShowText(string txt) { Debug.Log(txt); } } }