From a3ff52b7efbd4b19453c9a2b30cb85b928432fcc Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期一, 22 七月 2024 19:18:31 +0800
Subject: [PATCH] 10220 新google上架包-升级引擎 -优化图集生成
---
Assets/Editor/Tool/UpdateSpritePackingSetting.cs | 60 ++++++++++++++++++++---------
Assets/Launch/ResourcesModel.cs | 2
Assets/Editor/AssetBundleBrowser/AssetBundleBuildTab.cs | 4 +-
3 files changed, 44 insertions(+), 22 deletions(-)
diff --git a/Assets/Editor/AssetBundleBrowser/AssetBundleBuildTab.cs b/Assets/Editor/AssetBundleBrowser/AssetBundleBuildTab.cs
index 0b24fde..f96b653 100644
--- a/Assets/Editor/AssetBundleBrowser/AssetBundleBuildTab.cs
+++ b/Assets/Editor/AssetBundleBrowser/AssetBundleBuildTab.cs
@@ -368,7 +368,7 @@
EditorApplication.delayCall += ExcuteBuildVideo;
}
- if (GUILayout.Button("Levels"))
+ if (GUILayout.Button("Maps"))
{
EditorApplication.delayCall += ExcuteBuildLevels;
}
@@ -460,7 +460,7 @@
EditorGUILayout.Space();
GUILayout.BeginHorizontal();
- ClientPackage.obfuscatorEnabled = EditorGUILayout.Toggle("Obfuscator Enable ", ClientPackage.obfuscatorEnabled, GUILayout.Width(250));
+ //ClientPackage.obfuscatorEnabled = EditorGUILayout.Toggle("Obfuscator Enable ", ClientPackage.obfuscatorEnabled, GUILayout.Width(250));
#if UNITY_STANDALONE
if (GUILayout.Button("EXE"))
diff --git a/Assets/Editor/Tool/UpdateSpritePackingSetting.cs b/Assets/Editor/Tool/UpdateSpritePackingSetting.cs
index 8465c25..0435100 100644
--- a/Assets/Editor/Tool/UpdateSpritePackingSetting.cs
+++ b/Assets/Editor/Tool/UpdateSpritePackingSetting.cs
@@ -103,8 +103,8 @@
{
string rootPath_BuiltIn = Application.dataPath + "/ResourcesOut/BuiltIn/Sprites";
string spriteRelativePath_BuiltIn = "Assets/ResourcesOut/BuiltIn/Sprites";
-
- SpriteAtlas spriteAtlas = AssetDatabase.LoadAssetAtPath(spriteRelativePath_BuiltIn + "/" + "sprites.spriteatlas", typeof(UnityEngine.Object)) as SpriteAtlas;
+ var builtInSpritePath = spriteRelativePath_BuiltIn + "/sprites.spriteatlasv2";
+ SpriteAtlasAsset spriteAtlas = SpriteAtlasAsset.Load(builtInSpritePath);
// 涓嶅瓨鍦ㄥ垯鍒涘缓鍚庢洿鏂板浘闆�
if (spriteAtlas == null)
@@ -140,9 +140,10 @@
};
spriteAtlas = CreateSpriteAtlas(spriteRelativePath_BuiltIn, setting);
}
- string spriteFilePath = rootPath_BuiltIn;
List<string> excludePngs = new List<string>() { "Launch_1.png", "Launch_2.png", "Launch_3.png", "LoginBackGround.png", "TB_DL_Logo.png" };
- UpdateAtlas(spriteAtlas, spriteFilePath, excludePngs);
+
+ SpriteAtlas spriteAtlasTmp = AssetDatabase.LoadAssetAtPath(builtInSpritePath, typeof(UnityEngine.Object)) as SpriteAtlas;
+ UpdateAtlas(spriteAtlas, rootPath_BuiltIn, excludePngs, builtInSpritePath);
AssetDatabase.Refresh();
@@ -173,7 +174,8 @@
spritefilePathName = setting.folderName;
- SpriteAtlas spriteAtlas = AssetDatabase.LoadAssetAtPath(spriteRelativePath + "/" + spritefilePathName + ".spriteatlas", typeof(UnityEngine.Object)) as SpriteAtlas;
+ var filePath = spriteRelativePath + "/" + spritefilePathName + ".spriteatlasv2";
+ SpriteAtlasAsset spriteAtlas = SpriteAtlasAsset.Load(filePath);
// 涓嶅瓨鍦ㄥ垯鍒涘缓鍚庢洿鏂板浘闆�
if (spriteAtlas == null)
@@ -182,7 +184,9 @@
}
string spriteFilePath = rootPath + "/" + spritefilePathName;
- UpdateAtlas(spriteAtlas, spriteFilePath, new List<string>());
+
+
+ UpdateAtlas(spriteAtlas, spriteFilePath, new List<string>(), filePath);
// 鎵撳寘杩涘害
EditorUtility.DisplayProgressBar("鎵撳寘鍥鹃泦涓�...", "姝e湪澶勭悊:" + spritefilePathName, index / so.spriteSettings.Length);
@@ -208,9 +212,13 @@
/// 鍒涘缓鍥鹃泦
/// </summary>
/// <param name="atlasName">鍥鹃泦鍚嶅瓧</param>
- private static SpriteAtlas CreateSpriteAtlas(string outPath, SpriteSettingConfig.SpriteSetting setting)
+ private static SpriteAtlasAsset CreateSpriteAtlas(string outPath, SpriteSettingConfig.SpriteSetting setting)
{
- SpriteAtlas atlas = new SpriteAtlas();
+ string atlasPath = outPath + "/" + setting.folderName + ".spriteatlasv2";
+ CreateEmptySpriteAtlas(atlasPath);
+
+
+ SpriteAtlasImporter atlasImporter = SpriteAtlasImporter.GetAtPath(atlasPath) as SpriteAtlasImporter;
#region 鍥鹃泦鍩虹璁剧疆
@@ -221,7 +229,7 @@
enableTightPacking = setting.enableTightPacking,
padding = setting.padding,
};
- atlas.SetPackingSettings(packSetting);
+ atlasImporter.packingSettings = packSetting;
#endregion
@@ -234,30 +242,40 @@
sRGB = setting.sRGB,
filterMode = setting.filterMode,
};
- atlas.SetTextureSettings(textureSettings);
+ atlasImporter.textureSettings = textureSettings;
#endregion
#region 鍒嗗钩鍙拌缃浘闆嗘牸寮�
- foreach(SpriteSettingConfig.PlatformSetting platformSetting in setting.platformSettings)
+ foreach (SpriteSettingConfig.PlatformSetting platformSetting in setting.platformSettings)
{
- TextureImporterPlatformSettings settingPlatform = atlas.GetPlatformSettings(platformSetting.name);
+ TextureImporterPlatformSettings settingPlatform = atlasImporter.GetPlatformSettings(platformSetting.name);
settingPlatform.overridden = true;
settingPlatform.maxTextureSize = platformSetting.maxTextureSize;
settingPlatform.textureCompression = platformSetting.textureCompression;
settingPlatform.format = platformSetting.textureFormat;
- atlas.SetPlatformSettings(settingPlatform);
+ atlasImporter.SetPlatformSettings(settingPlatform);
}
#endregion
-
- string atlasPath = outPath + "/" + setting.folderName + ".spriteatlas";
- AssetDatabase.CreateAsset(atlas, atlasPath);
- AssetDatabase.SaveAssets();
+ atlasImporter.includeInBuild = true;
+ atlasImporter.SaveAndReimport();
+ //atlas.Add(objectsForPack);
+ SpriteAtlasAsset atlas = SpriteAtlasAsset.Load(atlasPath);
+
return atlas;
}
+
+ static void CreateEmptySpriteAtlas(string atlasPath)
+ {
+ SpriteAtlasAsset.Save(new SpriteAtlasAsset(), atlasPath);
+ AssetDatabase.SaveAssets();
+ AssetDatabase.Refresh();
+ }
+
+
/// <summary>
/// 姣忎釜鍥鹃泦鐨勬墍鏈夊浘鐗囪矾寰� -- 璁板緱鐢ㄤ箣鍓嶆竻绌�
@@ -268,13 +286,15 @@
/// 鏇存柊鍥鹃泦鍐呭
/// </summary>
/// <param name="atlas">鍥鹃泦</param>
- static void UpdateAtlas(SpriteAtlas atlas, string spriteFilePath, List<string> excludePng)
+ static void UpdateAtlas(SpriteAtlasAsset atlas, string spriteFilePath, List<string> excludePng, string filePath)
{
textureFullName.Clear();
FileName(spriteFilePath, excludePng);
+ SpriteAtlas spriteAtlasTmp = AssetDatabase.LoadAssetAtPath(filePath, typeof(UnityEngine.Object)) as SpriteAtlas;
+
// 鑾峰彇鍥鹃泦涓嬪浘鐗�
- List<UnityEngine.Object> packables = new List<UnityEngine.Object>(atlas.GetPackables());
+ List<UnityEngine.Object> packables = new List<UnityEngine.Object>(spriteAtlasTmp.GetPackables());
foreach (string item in textureFullName)
{
@@ -286,6 +306,8 @@
atlas.Add(new UnityEngine.Object[] { spriteObj });
}
}
+
+ SpriteAtlasAsset.Save(atlas, filePath);
}
/// <summary>
diff --git a/Assets/Launch/ResourcesModel.cs b/Assets/Launch/ResourcesModel.cs
index 7525e5d..e5f9a13 100644
--- a/Assets/Launch/ResourcesModel.cs
+++ b/Assets/Launch/ResourcesModel.cs
@@ -256,7 +256,7 @@
}
else
{
- var spriteAtlas = UnityEditor.AssetDatabase.LoadAssetAtPath<SpriteAtlas>("Assets/ResourcesOut/BuiltIn/Sprites/sprites.spriteatlas");
+ var spriteAtlas = UnityEditor.AssetDatabase.LoadAssetAtPath<SpriteAtlas>("Assets/ResourcesOut/BuiltIn/Sprites/sprites.spriteatlasv2");
sprite = spriteAtlas.GetSprite(name);
}
--
Gitblit v1.8.0