本文共 4128 字,大约阅读时间需要 13 分钟。
using System.Collections;using UnityEditor;using UnityEngine;public class EditorResourceSetting : AssetPostprocessor{ //模型导入之前调用 public void OnPreprocessModel() { //Debug.Log("OnPreprocessModel=" + this.assetPath); } //模型导入之后调用 public void OnPostprocessModel(GameObject go) { //Debug.Log("OnPostprocessModel=" + go.name); } //纹理导入之前调用,针对入到的纹理进行设置 public void OnPreprocessTexture() { //string dirName = System.IO.Path.GetDirectoryName(assetPath); //string folderStr = System.IO.Path.GetFileName(dirName); Debug.Log("导入Texture图片前处理"); TextureImporter textureImporter = (TextureImporter)assetImporter; string FileName = System.IO.Path.GetFileName(assetPath); string[] FileNameArray = FileName.Split(new string[] { "_" }, System.StringSplitOptions.RemoveEmptyEntries); if (FileNameArray.Length >= 3) { Debug.Log("符合命名规范图片"); textureImporter.mipmapEnabled = false;//关闭mipmap //图片类型 textureImporter.textureType = TextureImporterType.Sprite; textureImporter.spriteImportMode = SpriteImportMode.Single; //图片PackingTag textureImporter.spritePackingTag = FileNameArray[0]; //图片尺寸 if (FileNameArray[1] == "bg") { Debug.Log("名称:" + textureImporter.GetDefaultPlatformTextureSettings().name); TextureImporterPlatformSettings TempTexture = new TextureImporterPlatformSettings(); TempTexture.overridden = true; TempTexture.name = "Android"; TempTexture.maxTextureSize = 512; TempTexture.format = TextureImporterFormat.ETC_RGB4; textureImporter.SetPlatformTextureSettings(TempTexture); } else if (FileNameArray[1] == "btn") { textureImporter.maxTextureSize = 256; } else if (FileNameArray[1] == "icon") { textureImporter.maxTextureSize = 64; } else { textureImporter.maxTextureSize = 1024; textureImporter.textureCompression = TextureImporterCompression.Compressed; textureImporter.crunchedCompression = true; textureImporter.compressionQuality = 60; } Debug.Log("名称:" + textureImporter.GetDefaultPlatformTextureSettings().name); } else { Debug.Log("不是指定文件"); } } public void OnPostprocessTexture(Texture2D tex) { Debug.Log("导入Texture图片后处理"); } public void OnPreprocessAudio() { Debug.Log("音频导前预处理"); AudioImporterSampleSettings AudioSetting = new AudioImporterSampleSettings(); //加载方式选择 AudioSetting.loadType = AudioClipLoadType.CompressedInMemory; //压缩方式选择 AudioSetting.compressionFormat = AudioCompressionFormat.Vorbis; //设置播放质量 AudioSetting.quality = 0.1f; //优化采样率 AudioSetting.sampleRateSetting = AudioSampleRateSetting.OptimizeSampleRate; AudioImporter audio = assetImporter as AudioImporter; //开启单声道 audio.forceToMono = true; audio.preloadAudioData = true; audio.defaultSampleSettings = AudioSetting; } public void OnPostprocessAudio(AudioClip clip) { Debug.Log("音频导后处理"); } //所有的资源的导入,删除,移动,都会调用此方法,注意,这个方法是static的 (这个是在对应资源的导入前后函数执行后触发) public static void OnPostprocessAllAssets(string[] importedAsset, string[] deletedAssets, string[] movedAssets, string[] movedFromAssetPaths) { Debug.Log("OnPostprocessAllAssets"); foreach (string str in importedAsset) { Debug.Log("importedAsset = " + str); } foreach (string str in deletedAssets) { Debug.Log("deletedAssets = " + str); } foreach (string str in movedAssets) { Debug.Log("movedAssets = " + str); } foreach (string str in movedFromAssetPaths) { Debug.Log("movedFromAssetPaths = " + str); } }}
转载地址:http://aljti.baihongyu.com/