public static void ApplyRulesToTexture(TextureImporter textureImporter, TextureImportRule.TextureImportData data) { if (null == textureImporter) { return; } if (textureImporter.textureType != data.TextureImporterType) { textureImporter.textureType = data.TextureImporterType; } textureImporter.isReadable = data.IsReadWriteEnable; textureImporter.mipmapEnabled = data.IsMinMap; if (data.MaxTextureSize > 0) { textureImporter.maxTextureSize = data.MaxTextureSize; } TextureImporterPlatformSettings settingAndroid = textureImporter.GetPlatformTextureSettings("Android"); settingAndroid.overridden = true; settingAndroid.format = data.AndroidImporterFormat; settingAndroid.textureCompression = data.AndroidImporterCompression; settingAndroid.maxTextureSize = textureImporter.maxTextureSize; textureImporter.SetPlatformTextureSettings(settingAndroid); TextureImporterPlatformSettings settingIos = textureImporter.GetPlatformTextureSettings("iPhone"); settingIos.overridden = true; settingIos.format = data.IphoneImporterFormat; settingIos.textureCompression = data.IphoneImporterCompression; settingIos.maxTextureSize = textureImporter.maxTextureSize; textureImporter.SetPlatformTextureSettings(settingIos); textureImporter.SaveAndReimport(); }
public static void ReImportTextures(TextureImportRule.TextureImportData data) { if (data == null) { return; } string[] guids = AssetDatabase.FindAssets("t:Texture", new string[] { data.AssetPath }); for (int i = 0; i < guids.Length; i++) { string path = AssetDatabase.GUIDToAssetPath(guids[i]); if (string.IsNullOrEmpty(path)) { continue; } string dir = path.Remove(path.LastIndexOf('/')); if (!dir.Equals(data.AssetPath)) { continue; } string fileName = path.Substring(path.LastIndexOf('/') + 1); if (!data.IsMatch(fileName)) { continue; } TextureImporter textureImporter = AssetImporter.GetAtPath(path) as TextureImporter; if (null != textureImporter) { ApplyRulesToTexture(textureImporter, data); } } }
public static void TextureImport(TextureImporter textureImporter) { if (null == textureImporter) { return; } string dir = textureImporter.assetPath.Remove(textureImporter.assetPath.LastIndexOf('/')); string name = textureImporter.assetPath.Substring(textureImporter.assetPath.LastIndexOf('/') + 1); TextureImportRule.TextureImportData data = ImportRule.GetRule(dir, name); if (data != null) { ApplyRulesToTexture(textureImporter, data); } }