find-object-bundle-builder/FindVerticalBundleBuilder/Assets/Editor/TextureProcess.cs

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;
}
}