using UnityEngine; using System.Collections.Generic; namespace UnityEditor.Experimental.VFX.Toolbox.ImageSequencer { [HelpURL("https://drive.google.com/open?id=1YUwzA1mGvzWRpajDV-XF0iUd4RhW--bhMpqo-gmj9B8")] internal class ImageSequence : ScriptableObject { public List inputFrameGUIDs = new List(); public List processorInfos = new List(); public ExportSettings exportSettings = defaultExportSettings; public EditSettings editSettings = defaultEditSettings; public ImageSequence inheritSettingsReference; [System.Serializable] public struct ExportSettings { public string fileName; public ushort frameCount; public OutputMode outputShape; public ExportMode exportMode; public bool exportAlpha; public bool exportSeparateAlpha; public bool sRGB; public bool highDynamicRange; public bool compress; public bool generateMipMaps; public TextureWrapMode wrapMode; public FilterMode filterMode; public DataContents dataContents; } public static ExportSettings defaultExportSettings { get { return new ExportSettings { fileName = "", frameCount = 0, exportMode = ExportMode.Targa, exportAlpha = true, exportSeparateAlpha = false, sRGB = true, highDynamicRange = false, compress = true, generateMipMaps = true, wrapMode = TextureWrapMode.Repeat, filterMode = FilterMode.Bilinear, dataContents = DataContents.Color }; } } [System.Serializable] public struct EditSettings { public int selectedProcessor; public int lockedProcessor; } public static EditSettings defaultEditSettings { get { return new EditSettings() { selectedProcessor = -1, lockedProcessor = -1 }; } } [System.Serializable] public enum ExportMode { Targa = 0, EXR = 1, PNG = 2 } [System.Serializable] public enum OutputMode { Texture2D = 0, Texture2DArray = 1 } [System.Serializable] public enum DataContents { Color = 0, NormalMap = 1, NormalMapFromGrayscale = 2, Sprite = 3 } private void OnEnable() { ImageSequencer.CleanupAsset(this); } } }