一、理解我们要做的事

        原本图片放入文件夹后是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专门留给我们的文件夹,它不会因为编辑器的部分影响打包和运行。

 

更多推荐