编辑器扩展之Assets

将单个图片改为 2D and UI

    [MenuItem("Assets/将图片改为2D and UI",priority = 49)]
    public static void SetTextureType()
    {
        var t = Selection.objects;
        if (t.Length > 0)
        {
            for (int i = 0; i < t.Length; i++)
            {
                if (t[i] is Texture2D)
                {
                    //获取路径
                    string path = AssetDatabase.GetAssetPath(t[i]);
                    //获取图片属性。ti:可读可写
                    TextureImporter ti = TextureImporter.GetAtPath(path) as TextureImporter;
                    //修改图片的属性对图片进行操作
                    ti.mipmapEnabled = false;
                    ti.spriteBorder = Vector4.zero;
                    //将图片设为精灵模式(Sprite)
                    ti.textureType = TextureImporterType.Sprite;
                    //保存
                    ti.SaveAndReimport();
                }
            }
        }
        //刷新界面
        AssetDatabase.Refresh();
    }

将文件夹里的图片改为 2D and UI

[MenuItem("Assets/将文件夹的图片改为2D and UI", priority = 49)]
    public static void SetAllTextureType()
    {
        UnityEngine.Object[] selectedAsset = Selection.GetFiltered(typeof(Texture), SelectionMode.DeepAssets);
        if (selectedAsset.Length > 0)
        {
            for (int i = 0; i < selectedAsset.Length; i++)
            {
                if (selectedAsset[i] is Texture2D)
                {
                    //获取路径
                    string path = AssetDatabase.GetAssetPath(selectedAsset[i]);
                    //获取图片属性。ti:可读可写
                    TextureImporter ti = TextureImporter.GetAtPath(path) as TextureImporter;
                    //修改图片的属性对图片进行操作
                    ti.mipmapEnabled = false;
                    ti.spriteBorder = Vector4.zero;
                    //将图片设为精灵模式(Sprite)
                    ti.textureType = TextureImporterType.Sprite;
                    //保存
                    ti.SaveAndReimport();
                }
            }
        }
        //刷新界面
        AssetDatabase.Refresh();
    }

你可能感兴趣的:(unity)