Example #1
0
    void OnGUI()
    {
        TitleHorizontalUI();
        GUILayout.BeginVertical();
        var iter = dirList.GetEnumerator();

        while (iter.MoveNext())
        {
            dir        = iter.Current;
            bundleInfo = dirInfoDic[dir];


            bundleInfo.isValid = EditorGUILayout.BeginToggleGroup("IsValid", bundleInfo.isValid);
            GUILayout.BeginHorizontal();
            GUILayout.Label(dir.Name, EditorStyles.boldLabel, new[] { GUILayout.MinWidth(170) });

            bundleInfo.format             = (TextureImporterFormat)EditorGUILayout.EnumPopup(bundleInfo.format);
            bundleInfo.compressionQuality = (TextureCompressionQuality)EditorGUILayout.EnumPopup(bundleInfo.compressionQuality);
            GUILayout.EndHorizontal();
            EditorGUILayout.EndToggleGroup();
        }
        bundleInfo = null;
        dir        = null;
        iter.Dispose();
        GUILayout.EndVertical();
        if (GUILayout.Button("确定"))
        {
            if (EditorUtility.DisplayDialog("BundleAtlas优化", "是否确认修改图集设置", "确认", "取消"))
            {
                Execute();
            }
        }
    }
Example #2
0
    void Execute()
    {
        Debug.Log("开始");
        var            iter           = dirInfoDic.GetEnumerator();
        bool           isSpineTexture = false;
        FileSystemInfo fileInfo;

        while (iter.MoveNext())
        {
            dir        = iter.Current.Key;
            bundleInfo = iter.Current.Value;
            if (!fileDir.ContainsKey(dir) || !bundleInfo.isValid)
            {
                continue;
            }
            files = fileDir[dir];

            for (int i = 0; i < files.Length; i++)
            {
                fileInfo = files[i];
                if (fileInfo is DirectoryInfo || !fileInfo.Name.EndsWith(".png"))
                {
                    continue;
                }
                int index = fileInfo.FullName.IndexOf("Assets");
                if (index == -1)
                {
                    continue;
                }
                isSpineTexture = spineSkeletonData.ContainsKey(GetNameByShort(fileInfo));
                path           = fileInfo.FullName.Substring(index);
                //texture = AssetDatabase.LoadAssetAtPath<Texture2D>(path);
                //path = AssetDatabase.GetAssetPath(texture);
                TextureImporter import = AssetImporter.GetAtPath(path) as TextureImporter;
                if (import == null)
                {
                    continue;
                }
                import.textureType         = bundleInfo.defaultType;
                import.textureShape        = TextureImporterShape.Texture2D;
                import.mipmapEnabled       = bundleInfo.mipmapEnabled;
                import.ignorePngGamma      = bundleInfo.ignorePngGamma;
                import.isReadable          = bundleInfo.isReadable;
                import.alphaIsTransparency = isSpineTexture ? false : bundleInfo.alphaIsTransparency;
                import.sRGBTexture         = bundleInfo.sRGBTexture;
                import.spritePixelsPerUnit = bundleInfo.spritePixelsPerUnit;
                import.maxTextureSize      = bundleInfo.maxTextureSize;
                import.compressionQuality  = (int)bundleInfo.compressionQuality;

                //NONPOWER2的贴图如果强制被拉伸成了POWER2,会产生黑边
                import.npotScale = TextureImporterNPOTScale.None;
                //透明度直接使用Texture自己的信息
                import.alphaSource = TextureImporterAlphaSource.FromInput;

                import.SetPlatformTextureSettings(bundleInfo.GetPlatformSettings());
                import.SaveAndReimport();
                //AssetDatabase.ImportAsset(path);
            }
        }
        iter.Dispose();
        files      = null;
        dir        = null;
        path       = null;
        bundleInfo = null;
        Debug.Log("结束");
        Close();
    }