78 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			C#
		
	
	
		
		
			
		
	
	
			78 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			C#
		
	
	
| 
								 | 
							
								using UnityEditor;
							 | 
						||
| 
								 | 
							
								using UnityEngine;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								public class TextureProcess : AssetPostprocessor
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								    private void OnPreprocessTexture()
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        TextureImporter textureImporter = assetImporter as TextureImporter;
							 | 
						||
| 
								 | 
							
								        if (textureImporter == null)
							 | 
						||
| 
								 | 
							
								            return;
							 | 
						||
| 
								 | 
							
								        
							 | 
						||
| 
								 | 
							
								        //缩略图处理
							 | 
						||
| 
								 | 
							
								        if (textureImporter.assetPath.StartsWith("Assets/AssetRaw/UIRaw/Raw/Thum"))
							 | 
						||
| 
								 | 
							
								        {
							 | 
						||
| 
								 | 
							
								            textureImporter.maxTextureSize = 512;
							 | 
						||
| 
								 | 
							
								            textureImporter.textureType = TextureImporterType.Sprite;
							 | 
						||
| 
								 | 
							
								            textureImporter.textureShape = TextureImporterShape.Texture2D;
							 | 
						||
| 
								 | 
							
								            textureImporter.alphaIsTransparency = false;
							 | 
						||
| 
								 | 
							
								            textureImporter.isReadable = false;
							 | 
						||
| 
								 | 
							
								            textureImporter.mipmapEnabled = false;
							 | 
						||
| 
								 | 
							
								            textureImporter.wrapMode = TextureWrapMode.Clamp;
							 | 
						||
| 
								 | 
							
								            textureImporter.filterMode = FilterMode.Bilinear;
							 | 
						||
| 
								 | 
							
								            textureImporter.SetPlatformTextureSettings(GetAndroidTextureSettings(TextureImporterFormat.ASTC_6x6, 512));
							 | 
						||
| 
								 | 
							
								            textureImporter.SetPlatformTextureSettings(GetiOSTextureSettings(TextureImporterFormat.ASTC_6x6, 512));
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        //关卡图处理
							 | 
						||
| 
								 | 
							
								        else if (textureImporter.assetPath.StartsWith("Assets/AssetRaw/UIRaw/Raw/Level"))
							 | 
						||
| 
								 | 
							
								        {
							 | 
						||
| 
								 | 
							
								            if (textureImporter.name.Contains("_base"))
							 | 
						||
| 
								 | 
							
								            {
							 | 
						||
| 
								 | 
							
								                textureImporter.textureType = TextureImporterType.Sprite;
							 | 
						||
| 
								 | 
							
								                textureImporter.textureShape = TextureImporterShape.Texture2D;
							 | 
						||
| 
								 | 
							
								                textureImporter.alphaIsTransparency = false;
							 | 
						||
| 
								 | 
							
								                textureImporter.isReadable = false;
							 | 
						||
| 
								 | 
							
								                textureImporter.mipmapEnabled = false;
							 | 
						||
| 
								 | 
							
								                textureImporter.wrapMode = TextureWrapMode.Clamp;
							 | 
						||
| 
								 | 
							
								                textureImporter.filterMode = FilterMode.Bilinear;
							 | 
						||
| 
								 | 
							
								                textureImporter.SetPlatformTextureSettings(GetAndroidTextureSettings(TextureImporterFormat.ASTC_6x6));
							 | 
						||
| 
								 | 
							
								                textureImporter.SetPlatformTextureSettings(GetiOSTextureSettings(TextureImporterFormat.ASTC_6x6));
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								            else
							 | 
						||
| 
								 | 
							
								            {
							 | 
						||
| 
								 | 
							
								                textureImporter.textureType = TextureImporterType.Sprite;
							 | 
						||
| 
								 | 
							
								                textureImporter.textureShape = TextureImporterShape.Texture2D;
							 | 
						||
| 
								 | 
							
								                textureImporter.alphaIsTransparency = true;
							 | 
						||
| 
								 | 
							
								                textureImporter.isReadable = false;
							 | 
						||
| 
								 | 
							
								                textureImporter.mipmapEnabled = false;
							 | 
						||
| 
								 | 
							
								                textureImporter.wrapMode = TextureWrapMode.Clamp;
							 | 
						||
| 
								 | 
							
								                textureImporter.filterMode = FilterMode.Bilinear;
							 | 
						||
| 
								 | 
							
								                textureImporter.SetPlatformTextureSettings(GetAndroidTextureSettings(TextureImporterFormat.ASTC_6x6));
							 | 
						||
| 
								 | 
							
								                textureImporter.SetPlatformTextureSettings(GetiOSTextureSettings(TextureImporterFormat.ASTC_6x6));
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								    private TextureImporterPlatformSettings GetAndroidTextureSettings(TextureImporterFormat format, int size = 2048)
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        TextureImporterPlatformSettings textureImporter = new TextureImporterPlatformSettings();
							 | 
						||
| 
								 | 
							
								        textureImporter.name = "Android";
							 | 
						||
| 
								 | 
							
								        textureImporter.maxTextureSize = size;
							 | 
						||
| 
								 | 
							
								        textureImporter.format = format;
							 | 
						||
| 
								 | 
							
								        textureImporter.overridden = true;
							 | 
						||
| 
								 | 
							
								        textureImporter.textureCompression = TextureImporterCompression.Compressed;
							 | 
						||
| 
								 | 
							
								        return textureImporter;
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								    private TextureImporterPlatformSettings GetiOSTextureSettings(TextureImporterFormat format, int size = 2048)
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        TextureImporterPlatformSettings textureImporter = new TextureImporterPlatformSettings();
							 | 
						||
| 
								 | 
							
								        textureImporter.name = "iPhone";
							 | 
						||
| 
								 | 
							
								        textureImporter.maxTextureSize = size;
							 | 
						||
| 
								 | 
							
								        textureImporter.format = format;
							 | 
						||
| 
								 | 
							
								        textureImporter.overridden = true;
							 | 
						||
| 
								 | 
							
								        textureImporter.textureCompression = TextureImporterCompression.Compressed;
							 | 
						||
| 
								 | 
							
								        return textureImporter;
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								}
							 |