少年修仙传客户端基础资源
hch
2024-07-22 a3ff52b7efbd4b19453c9a2b30cb85b928432fcc
10220 新google上架包-升级引擎 -优化图集生成
3个文件已修改
66 ■■■■■ 已修改文件
Assets/Editor/AssetBundleBrowser/AssetBundleBuildTab.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Editor/Tool/UpdateSpritePackingSetting.cs 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Launch/ResourcesModel.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
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"))
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("打包图集中...", "正在处理:" + 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>
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);
            }