public override void Apply() { if (SpriteRects != null && SpriteRects.Length > 0) { List <AseFileSpriteImportData> newImportData = new List <AseFileSpriteImportData>(); foreach (SpriteRect spriteRect in SpriteRects) { AseFileSpriteImportData data = new AseFileSpriteImportData() { alignment = spriteRect.alignment, border = spriteRect.border, name = spriteRect.name, pivot = spriteRect.pivot, rect = spriteRect.rect, spriteID = spriteRect.spriteID.ToString() }; AseFileSpriteImportData current = Array.Find <AseFileSpriteImportData>(SpriteImportData, d => d.spriteID == spriteRect.spriteID.ToString()); if (current != null) { data.outline = current.outline; data.tessellationDetail = current.tessellationDetail; } else { data.outline = SpriteAtlasBuilder.GenerateRectOutline(data.rect); data.tessellationDetail = 0; } newImportData.Add(data); } SpriteRects = new SpriteRect[0]; SpriteImportData = newImportData.ToArray(); EditorUtility.SetDirty(Importer); } AssetDatabase.WriteImportSettingsIfDirty(AssetPath); //SaveAndReimport(); AssetDatabase.Refresh(); AssetDatabase.LoadAllAssetsAtPath(AssetPath); EditorApplication.RepaintProjectWindow(); }
public AseFileSpriteImportData[] GetSingleSpriteImportData() { Rect spriteRect = new Rect(0, 0, textureWidth, textureHeight); return(new AseFileSpriteImportData[] { new AseFileSpriteImportData() { alignment = SpriteAlignment.Center, border = Vector4.zero, name = name, outline = SpriteAtlasBuilder.GenerateRectOutline(spriteRect), pivot = new Vector2(0.5f, 0.5f), rect = spriteRect, spriteID = GUID.Generate().ToString(), tessellationDetail = 0 } }); }
public void SetSingleSpriteImportData() { Rect spriteRect = new Rect(0, atlas.height - AsepriteFile.Header.Height, AsepriteFile.Header.Width, AsepriteFile.Header.Height); SpriteImportData = new AseFileSpriteImportData[] { new AseFileSpriteImportData() { alignment = SpriteAlignment.Center, border = Vector4.zero, name = name, outline = SpriteAtlasBuilder.GenerateRectOutline(spriteRect), pivot = new Vector2(0.5f, 0.5f), rect = spriteRect, spriteID = GUID.Generate().ToString(), tessellationDetail = 0 } }; AnimationSettings = null; }
public void GenerateAtlasTexture(bool overwriteSprites = false) { if (atlas != null) { return; } SpriteAtlasBuilder atlasBuilder = new SpriteAtlasBuilder(AsepriteFile.Header.Width, AsepriteFile.Header.Height); Texture2D[] frames = AsepriteFile.GetFrames(); atlas = atlasBuilder.GenerateAtlas(frames, out AseFileSpriteImportData[] importData); textureWidth = atlas.width; textureHeight = atlas.height; frameCount = importData.Length; // Rename sprites if (overwriteSprites) { for (int i = 0; i < importData.Length; i++) { importData[i].name = string.Format("{0}_{1}", name, importData[i].name); } SpriteRects = new SpriteRect[0]; SpriteImportData = importData; if (SpriteImportData.Length > 1) { TextureImportSettings.spriteMode = (int)SpriteImportMode.Multiple; } AssetDatabase.WriteImportSettingsIfDirty(AssetPath); } }