Esempio n. 1
0
        private static void ConvertAtlasFormat(BuildTarget bt, QualityEnum qe)
        {
#if UNITY_2018
            var dirs = new List <string>();
            GetDirs(Application.dataPath, ref dirs, @"\.spriteatlas$");

            foreach (var t in dirs)
            {
                //Debug.Log(string.Format("== SpriteAtlas 路径为: {0} ==", dirs[i]));
                var sa = AssetDatabase.LoadAssetAtPath <SpriteAtlas>(t);
                sa.SetIncludeInBuild(true); //TODO

                var saps = sa.GetPackingSettings();
                saps.enableRotation     = false;
                saps.enableTightPacking = false;
                sa.SetPackingSettings(saps);

                var platName = GetPlatName(bt);
                var tips     = sa.GetPlatformSettings(platName);
                if (tips == null)
                {
                    continue;
                }
                tips.overridden = true;
                tips.format     = GetImageQuality(bt, qe);
                //tips.compressionQuality = (int)TextureCompressionQuality.Normal; TODO
                sa.SetPlatformSettings(tips);
            }
            AssetDatabase.SaveAssets();
            AssetDatabase.Refresh();
            Debug.LogWarning($"==== 完成对应品质的Atlas转换: {qe.ToString()}====");
#endif
        }
Esempio n. 2
0
        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
        {
            QualityEnum quality = (QualityEnum)(value);

            return(quality.ToString());
        }
Esempio n. 3
0
        private static void ConvertImgFormat(BuildTarget bt, QualityEnum qe, bool isRestore = false)
        {
            var imageBase = new TextureImporterPlatformSettings
            {
                overridden = true,
                name       = bt.ToString(),
                //maxTextureSize = 2048,
                format = TextureImporterFormat.RGBA32,
                //compressionQuality = (int)TextureCompressionQuality.Best, TODO
                allowsAlphaSplitting = false
            };

            var dirs = new List <string>();

            GetDirs(Application.dataPath, ref dirs, @"\.((pn)|(jp))g$");

            foreach (var t in dirs)
            {
                var lowName = t.ToLowerInvariant();
                var valid   = false;
                foreach (var t1 in _checkDirs)
                {
                    var lowDir = t1.ToLowerInvariant();
                    if (!lowName.Contains(lowDir))
                    {
                        continue;
                    }
                    valid = true;
                    break;
                }

                if (!valid)
                {
                    continue;
                }

                var importer = AssetImporter.GetAtPath(t) as TextureImporter;
                //if (!importer.textureType.Equals(TextureImporterType.Sprite))
                //{
                //    Debug.LogError(string.Format("==检测到非Sprite资源==  path:{0}", dirs[j]));
                //    continue;
                //}

                if (!isRestore)
                {
                    imageBase.format = GetImageQuality(bt, qe, importer.DoesSourceTextureHaveAlpha());
                    importer.SetPlatformTextureSettings(imageBase);
                    importer.mipmapEnabled = false;
                }
                else
                {
                    importer.ClearPlatformTextureSettings(bt.ToString());
                    //importer.SaveAndReimport();
                }

                //image_base = importer.GetPlatformTextureSettings(BuildTarget.Android.ToString());
                //Debug.Log(string.Format("==检测到资源==  path:{0}  overridden:{1}  name:{2} maxTextureSize:{3}  format:{4} compressionQuality:{5}  allowsAlphaSplitting:{6}  crunchedCompression:{7}",
                //    dirs[j], Android_png.overridden,
                //    Android_png.name, Android_png.maxTextureSize,
                //    Android_png.format, Android_png.compressionQuality,
                //    Android_png.allowsAlphaSplitting, Android_png.crunchedCompression));
            }

            AssetDatabase.Refresh();
            //}
            Debug.LogWarning(
                $"==图片转换处理结束==  对象平台:{bt.ToString()}  处理数量:{dirs.Count}  品质:{qe.ToString()}");
        }