public void WhenSpriteWithAtlas_SpriteImportDataCreated(SpritePackerMode spriteMode, string spritePackingTag, bool hasReferencingSpriteAtlas, bool expectedPacked) { string sourceTexture = Path.Combine(kSourceTestAssetFolder, "SpriteTexture32x32.png"); string destTexture = Path.Combine(kTestAssetFolder, "SpriteTexture32x32.png"); AssetDatabase.CopyAsset(sourceTexture, destTexture); TextureImporter importer = AssetImporter.GetAtPath(destTexture) as TextureImporter; importer.spritePackingTag = spritePackingTag; importer.SaveAndReimport(); if (hasReferencingSpriteAtlas) { var sa = new SpriteAtlas(); var targetObjects = new UnityEngine.Object[] { AssetDatabase.LoadAssetAtPath <Texture>(destTexture) }; sa.Add(targetObjects); string saPath = Path.Combine(kTestAssetFolder, "sa.spriteAtlas"); AssetDatabase.CreateAsset(sa, saPath); AssetDatabase.Refresh(); } GUID.TryParse(AssetDatabase.AssetPathToGUID(destTexture), out GUID spriteGUID); CalculateAssetDependencyData.TaskInput input = CreateDefaultInput(); EditorSettings.spritePackerMode = spriteMode; SpriteAtlasUtility.PackAllAtlases(input.Target); input.Assets = new List <GUID>() { spriteGUID }; CalculateAssetDependencyData.RunInternal(input, out CalculateAssetDependencyData.TaskOutput output); Assert.AreEqual(expectedPacked, output.AssetResults[0].spriteData.PackedSprite); }
private void DoAlphaSeparate(BuildTarget buildTarget) { m_originSpritePackerMode = EditorSettings.spritePackerMode; m_spriteEntries = new List <SpriteEntry>(); m_atlasEntries = new List <AtlasEntry>(); // 刷新图集缓存 UpdateAtlases(buildTarget); // 找到所有要处理的项 FindAllEntries(buildTarget, m_spriteEntries, m_atlasEntries); // 生成alpha纹理 GenerateAlphaTextures(m_atlasEntries); // 保存纹理到文件 SaveTextureAssets(m_atlasEntries); // 刷新资源 AssetDatabase.Refresh(); // 从文件中加载alpha纹理 ReloadTextures(m_atlasEntries); // 修改所有sprite的Render Data WriteSpritesRenderData(m_atlasEntries); // 禁用SpritePacker准备打包 EditorSettings.spritePackerMode = SpritePackerMode.Disabled; }
public void Setup() { m_PrevMode = EditorSettings.spritePackerMode; Directory.CreateDirectory(kTestAssetFolder); }
public SpritePackerScope(SpritePackerMode mode) { m_PrevMode = EditorSettings.spritePackerMode; EditorSettings.spritePackerMode = mode; }