#if UNITY_EDITOR using UnityEditor; using UnityEngine; using System.Collections.Generic; [InitializeOnLoad] public class PlatformMeshCompression : AssetPostprocessor { // Map GUIDs to compression settings: (PC, Android) static readonly Dictionary compressionMap = new Dictionary { { "e82fc872936dfa44a8653aab54da1bba", (ModelImporterMeshCompression.Off, ModelImporterMeshCompression.Medium) }, }; static PlatformMeshCompression() { EditorApplication.delayCall += ReimportMappedAssets; } static void ReimportMappedAssets() { foreach (var guid in compressionMap.Keys) { string path = AssetDatabase.GUIDToAssetPath(guid); if (!string.IsNullOrEmpty(path)) { AssetDatabase.ImportAsset(path, ImportAssetOptions.ForceUpdate); } } } void OnPreprocessModel() { var modelImporter = (ModelImporter)assetImporter; string guid = AssetDatabase.AssetPathToGUID(assetPath); if (compressionMap.TryGetValue(guid, out var compressions)) { #if UNITY_ANDROID modelImporter.meshCompression = compressions.android; #else modelImporter.meshCompression = compressions.pc; #endif } } } #endif