一、理解我们要做的事
原本图片放入文件夹后是Default(默认)模式,但是需要大量处理图片的时候,我们希望它拖进去就是sprite模式 = 我们想修改unity原本的功能。
二、unity是允许我们去修改它本身的一些功能的,你可以定制属于你的unity
这需要用到UnityEditor,所以我们需要在代码里加上using UnityEditor;
三、unityEditor
因为我们现在想要修改的是导入图片时改变图片模式,所以这部分内容在导入这里,因此我们需要继承AssetPostprocessor
using UnityEditor;
using UnityEngine;
public class SpriteProcessor : AssetPostprocessor
{}
四、开始写代码
TextureImporter 纹理导入器,用这个类可以修改导入unity图片的设置
using UnityEditor;
using UnityEngine;
public class SpriteProcessor : AssetPostprocessor
{
//这是人家写好的方法,当你把图片搞进来时
private void OnPostprocessTexture(Texture2D texture) {
//如果我们的文件夹里有Sprites这个名字
if (assetPath.IndexOf("/Sprites/")!= -1)
{
//assetImporter就是拖进来的东西,在AssetProstprocessor类里写好的,你可以直接用
//强制转换成TextureImporter
TextureImporter textureImporter = (TextureImporter)assetImporter;
//把格式改成sprite
textureImporter.textureType = TextureImporterType.Sprite;
//图片不用分割,就一张
textureImporter.spriteImportMode = SpriteImportMode.Single;
//有透明通道
textureImporter.alphaIsTransparency = true;
//不需要图片深度
textureImporter.mipmapEnabled = false;
}
}
}
五、注意事项
这是我们改编辑器的代码,你在打包的时候是不需要去打包这部分内容的。所以你需要专门建一个文件夹Editor,把它放进去,这是unity专门留给我们的文件夹,它不会因为编辑器的部分影响打包和运行。