void DrawMultiOpContent() { GUILayout.BeginVertical(); GUILayout.BeginHorizontal(); GUILayout.BeginVertical(); GUILayout.BeginHorizontal(); bMipMap = GUILayout.Toggle(bMipMap, "MipMap", GUILayout.Width(80)); bRw = GUILayout.Toggle(bRw, "R/W Enabled", GUILayout.Width(100)); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.Label("ANDROID:", GUILayout.Width(70)); antFmt = (AndroidFormat)EditorGUILayout.EnumPopup(antFmt, GUILayout.Width(90)); antQua = (CompressQuality)EditorGUILayout.EnumPopup(antQua, GUILayout.Width(90)); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.Label("IOS:", GUILayout.Width(70)); iosFmt = (IosFormat)EditorGUILayout.EnumPopup(iosFmt, GUILayout.Width(90)); iosQua = (CompressQuality)EditorGUILayout.EnumPopup(iosQua, GUILayout.Width(90)); GUILayout.EndHorizontal(); GUILayout.EndVertical(); if (GUILayout.Button("全选", GUILayout.Width(200), GUILayout.Height(50))) { foreach (var item in _config) { item.bModify = true; } } if (GUILayout.Button("批量转换选择纹理", GUILayout.Width(200), GUILayout.Height(50))) { if ((int)antFmt == 0 | (int)antQua == 0 | (int)iosFmt == 0 | (int)iosQua == 0) { EditorUtility.DisplayDialog("警告", "没有设置批量转换的目标格式", "OK"); } else { foreach (var item in _config) { if (item.bModify && item.texture != null) { item.mipmap = bMipMap; item.rw = bRw; item.android.format = (TextureImporterFormat)antFmt; item.android.compressionQuality = (int)antQua; item.ios.format = (TextureImporterFormat)iosFmt; item.ios.compressionQuality = (int)iosQua; } } DoConvert(); } } GUILayout.EndHorizontal(); GUILayout.EndVertical(); }
private void DoConvert() { int convertCount = 0; foreach (var item in _config) { if (item.bModify && item.texture != null) { convertCount++; } } int ok = 0; for (int i = 0; i < _config.Count; i++) { TexData td = _config[i]; if (td.bModify && td.texture != null) { EditorUtility.DisplayProgressBar("纹理转换", td.ti.assetPath, ok++ / (float)convertCount); td.bModify = false; td.color = Color.gray; td.ti.mipmapEnabled = td.mipmap; td.ti.isReadable = td.rw; AndroidFormat androidFmt = (AndroidFormat)td.android.format; IosFormat iosFmt = (IosFormat)td.ios.format; //智能格式转换 - Normal不要alpha unity说没alpha 就不设置alpha if (td.ti.textureType == TextureImporterType.NormalMap | !TextureHasAlpha(td.ti)) { if (androidFmt == AndroidFormat.RGBA32) { androidFmt = AndroidFormat.RGB24; } else if (androidFmt == AndroidFormat.RGBA16) { androidFmt = AndroidFormat.RGB16; } else if (androidFmt == AndroidFormat.ETC2_RGBA8) { androidFmt = AndroidFormat.ETC2_RGB4; } if (iosFmt == IosFormat.RGBA32) { iosFmt = IosFormat.RGB24; } else if (iosFmt == IosFormat.RGBA16) { iosFmt = IosFormat.RGB16; } else if (iosFmt == IosFormat.PVRTC_RGBA4) { iosFmt = IosFormat.PVRTC_RGB4; } else if (iosFmt == IosFormat.ASTC_RGBA_4x4) { iosFmt = IosFormat.ASTC_RGB_4x4; } else if (iosFmt == IosFormat.ASTC_RGBA_6x6) { iosFmt = IosFormat.ASTC_RGB_6x6; } } if (bModifyAndroid) { td.ti.SetPlatformTextureSettings("Android", td.android.maxTextureSize, (TextureImporterFormat)androidFmt, td.android.compressionQuality, false); } if (bModifyIOS) { td.ti.SetPlatformTextureSettings("iPhone", td.ios.maxTextureSize, (TextureImporterFormat)iosFmt, td.ios.compressionQuality, false); } AssetDatabase.ImportAsset(td.ti.assetPath); EditorUtility.ClearProgressBar(); } } }