Unity导入资源(纹理 Texture 声音 Audio 模型 FBX)动态设置
2017-06-26 18:05
666 查看
创建下面脚本放在Editor文件夹下即可
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); } } }
相关文章推荐
- [Unity基础]导入贴图、模型等资源文件时自动设置参数
- unity资源texturepack导入和拆图-plist2sprite
- 关于3.5以上版本FBX模型文件导入unity后不播放动作的问题
- 将ogre的模型导入到blender中, 导出为fbx,并导入到 unity 中
- 随笔1: 3DMax中模型生成fbx,导入Unity中出现材质丢失问题
- [Unity官方文档翻译]Import Settings unity资源中的导入设置
- Unity5.6.x 声音导入设置
- unity3d导入3dmax fbx格式模型单位设置问题
- unity3D 动态导入FBX、obj模型
- Unity 导入 fbx 模型文件
- Unity3D 导入贴图、模型等资源文件时自动设置参数
- Unity导入Texture自动设置参数
- Unity3D导入的FBX场景模型设置物体之间的碰撞
- max模型导入到unity中设置
- Unity FBX模型 导入到 Maya HumanIK
- 动态代码设置assetbundleName,将一个纹理(Texture)文件夹打包,加载assetbundle
- Unity导入FBX文件部分模型丢失材质的BUG
- unity基础开发--模型导入untiy组件和二维纹理组件
- Unity导入模型的中文纹理文件问题
- Unity3D导入的FBX场景模型设置物体之间的碰撞