public void Apply() { for (int i = 0; i < this.importers.Length; i++) { TextureImporter textureImporter = this.importers[i]; int compressionQuality = -1; bool flag = false; int maxTextureSize; if (this.isDefault) { maxTextureSize = textureImporter.maxTextureSize; } else { TextureImporterFormat textureImporterFormat; flag = textureImporter.GetPlatformTextureSettings(this.name, out maxTextureSize, out textureImporterFormat, out compressionQuality); } if (!flag) { maxTextureSize = textureImporter.maxTextureSize; } if (!this.m_MaxTextureSizeIsDifferent) { maxTextureSize = this.m_MaxTextureSize; } if (!this.m_CompressionQualityIsDifferent) { compressionQuality = this.m_CompressionQuality; } if (!this.isDefault) { if (!this.m_OverriddenIsDifferent) { flag = this.m_Overridden; } bool allowsAlphaSplitting = textureImporter.GetAllowsAlphaSplitting(); if (flag) { textureImporter.SetPlatformTextureSettings(this.name, maxTextureSize, this.m_TextureFormatArray[i], compressionQuality, allowsAlphaSplitting); } else { textureImporter.ClearPlatformTextureSettings(this.name); } } else { textureImporter.maxTextureSize = maxTextureSize; textureImporter.textureFormat = this.m_TextureFormatArray[i]; textureImporter.compressionQuality = compressionQuality; } } }
public void Apply() { for (int i = 0; i < importers.Length; i++) { TextureImporter imp = importers[i]; TextureImporterPlatformSettings platformSettings = imp.GetPlatformTextureSettings(name); // Overwrite with inspector properties if same for all targets if (!m_OverriddenIsDifferent) { platformSettings.overridden = m_PlatformSettings.overridden; } if (!m_TextureFormatIsDifferent) { platformSettings.format = m_PlatformSettings.format; } if (!m_MaxTextureSizeIsDifferent) { platformSettings.maxTextureSize = m_PlatformSettings.maxTextureSize; } if (!m_ResizeAlgorithmIsDifferent) { platformSettings.resizeAlgorithm = m_PlatformSettings.resizeAlgorithm; } if (!m_TextureCompressionIsDifferent) { platformSettings.textureCompression = m_PlatformSettings.textureCompression; } if (!m_CompressionQualityIsDifferent) { platformSettings.compressionQuality = m_PlatformSettings.compressionQuality; } if (!m_CrunchedCompressionIsDifferent) { platformSettings.crunchedCompression = m_PlatformSettings.crunchedCompression; } if (!m_AlphaSplitIsDifferent) { platformSettings.allowsAlphaSplitting = m_PlatformSettings.allowsAlphaSplitting; } if (!m_AndroidETC2FallbackOverrideIsDifferent) { platformSettings.androidETC2FallbackOverride = m_PlatformSettings.androidETC2FallbackOverride; } platformSettings.forceMaximumCompressionQuality_BC6H_BC7 = m_PlatformSettings.forceMaximumCompressionQuality_BC6H_BC7; imp.SetPlatformTextureSettings(platformSettings); } m_HasChanged = false; }
public void Apply() { for (int i = 0; i < this.importers.Length; i++) { TextureImporter textureImporter = this.importers[i]; TextureImporterPlatformSettings platformTextureSettings = textureImporter.GetPlatformTextureSettings(this.name); if (!this.m_OverriddenIsDifferent) { platformTextureSettings.overridden = this.m_PlatformSettings.overridden; } if (!this.m_TextureFormatIsDifferent) { platformTextureSettings.format = this.m_PlatformSettings.format; } if (!this.m_MaxTextureSizeIsDifferent) { platformTextureSettings.maxTextureSize = this.m_PlatformSettings.maxTextureSize; } if (!this.m_ResizeAlgorithmIsDifferent) { platformTextureSettings.resizeAlgorithm = this.m_PlatformSettings.resizeAlgorithm; } if (!this.m_TextureCompressionIsDifferent) { platformTextureSettings.textureCompression = this.m_PlatformSettings.textureCompression; } if (!this.m_CompressionQualityIsDifferent) { platformTextureSettings.compressionQuality = this.m_PlatformSettings.compressionQuality; } if (!this.m_CrunchedCompressionIsDifferent) { platformTextureSettings.crunchedCompression = this.m_PlatformSettings.crunchedCompression; } if (!this.m_AlphaSplitIsDifferent) { platformTextureSettings.allowsAlphaSplitting = this.m_PlatformSettings.allowsAlphaSplitting; } if (!this.m_AndroidETC2FallbackOverrideIsDifferent) { platformTextureSettings.androidETC2FallbackOverride = this.m_PlatformSettings.androidETC2FallbackOverride; } textureImporter.SetPlatformTextureSettings(platformTextureSettings); } }
static void ClearPlatformOverrides(string platformName, TextureImporter importer) { //Workaround: without this AssetDatabase.ImportAsset() not working importer.SetPlatformTextureSettings(platformName, 0, 0); importer.ClearPlatformTextureSettings(platformName); }
/// <summary> /// 设置图片 样式 /// </summary> /// <param name="iOSFroamt"></param> /// <param name="AndroidFroamt"></param> static void SettingTexture(TextureImporterFormat iOSFroamt, TextureImporterFormat?AndroidFroamt = null) { if (null == AndroidFroamt) { AndroidFroamt = iOSFroamt; } List <string> fileList = new List <string>(); /// 遍历 目录 操作 if (null != Selection.objects) { for (int index = 0; index < Selection.objects.Length; index++) { if (null != Selection.objects[index]) { string path = string.Format("{0}/../{1}", Application.dataPath, AssetDatabase.GetAssetPath(Selection.objects[index])); if (System.IO.Directory.Exists(path)) { EditorSearchFile.SearchPath(path, fileList, ""); } else { fileList.Add(path); } } } } for (int index = 0; index < fileList.Count; index++) { string path = fileList[index]; while (path.LastIndexOf("Assets/", System.StringComparison.Ordinal) != 0 && path.LastIndexOf("Assets/", System.StringComparison.Ordinal) != -1) { path = path.Substring(path.LastIndexOf("Assets/", System.StringComparison.Ordinal)); } UnityEditor.TextureImporter importer = UnityEditor.TextureImporter.GetAtPath(path) as UnityEditor.TextureImporter; if (null == importer) { continue; } importer.mipmapEnabled = false; /// 读取 TextureImporterPlatformSettings iOS = importer.GetPlatformTextureSettings("iPhone"); TextureImporterPlatformSettings Android = importer.GetPlatformTextureSettings("Android"); /// 重写 设成 true Android.overridden = iOS.overridden = true; importer.textureType = TextureImporterType.Sprite; importer.alphaSource = TextureImporterAlphaSource.FromInput; importer.alphaIsTransparency = true; importer.npotScale = TextureImporterNPOTScale.None; /// 类型设置 Android.format = (TextureImporterFormat)AndroidFroamt; iOS.format = iOSFroamt; /// 赋值 importer.SetPlatformTextureSettings(iOS); importer.SetPlatformTextureSettings(Android); /// LOG Debug.Log(string.Format("Setting Texture : [ Android = {1}, iOS = {2} ]{0}", path, AndroidFroamt, iOSFroamt)); /// 保存 importer.SaveAndReimport(); } }
//把UI图片设置为只读,减少内存占用 public void OnPreprocessTexture() { UnityEditor.TextureImporter importer = this.assetImporter as UnityEditor.TextureImporter; if (importer == null) { return; } var andSettings = new TextureImporterPlatformSettings(); var iosSettings = new TextureImporterPlatformSettings(); andSettings.name = "Android"; iosSettings.name = "iPhone"; andSettings.overridden = true; iosSettings.overridden = true; andSettings.compressionQuality = iosSettings.compressionQuality = 50; andSettings.format = TextureImporterFormat.ETC2_RGBA8; andSettings.androidETC2FallbackOverride = AndroidETC2FallbackOverride.Quality32Bit; iosSettings.format = TextureImporterFormat.ASTC_6x6; andSettings.maxTextureSize = iosSettings.maxTextureSize = 1024;//NOTE 如果有特殊需求可通过配置修改 importer.SetPlatformTextureSettings(andSettings); importer.SetPlatformTextureSettings(iosSettings); var rootDir = importer.assetPath.Split('/')[1]; if (rootDir == KEngineDef.ResourcesEditDir) { if (importer.isReadable) { importer.isReadable = false; } if (importer.assetPath.StartsWith(KEngineDef.UIPath)) { if (assetPath.Contains("Fonts")) { importer.textureType = TextureImporterType.Default; } else { importer.textureType = TextureImporterType.Sprite; } importer.mipmapEnabled = false; //NOTE 根据项目的实际情况,是把同一种类所有icon打到一个ab中,还是每个icon打成一个ab } else if (importer.assetPath.Contains("Character")) { if (!(importer.assetPath.Contains("Character/Hero") || importer.assetPath.Contains("Character/Hair"))) { importer.textureType = TextureImporterType.Default; importer.mipmapEnabled = false; } } else if (importer.assetPath.Contains(".exr")) { //Debug.Log("lightmap settings: " + importer.assetPath); importer.textureType = TextureImporterType.Lightmap; #if UNITY_2018_3_OR_NEWER importer.textureCompression = TextureImporterCompression.Uncompressed; var ftm = importer.GetDefaultPlatformTextureSettings(); ftm.format = TextureImporterFormat.RGBA32; importer.SetPlatformTextureSettings(ftm); #else importer.textureFormat = TextureImporterFormat.AutomaticTruecolor; #endif importer.wrapMode = TextureWrapMode.Clamp; //importer.mipmapEnabled = false; } } else { if (importer.assetPath.Contains("Editor/GameTools/XSceneTool/MapImages")) { importer.textureType = TextureImporterType.Default; importer.mipmapEnabled = false; importer.npotScale = TextureImporterNPOTScale.None; if (!importer.isReadable) { importer.isReadable = true; } } } }