Unity的小工具

这篇具有很好参考价值的文章主要介绍了Unity的小工具。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

最近项目工期紧,所以更新少了,不过我遇到一些问题,当我的UI/序列帧过多的时候,我需要去选中UI转换成Sprite,而且用shift选中的时候,文件夹中上百个文件,中间混进一个其他格式的文件我还得一个一个找出来,太麻烦了,我们是程序员,程序员就是用代码的方式解决问题,我想到了用代码批量转换,并且限制最大分辨率,开启压缩,代码如下:

public class ScanAndConvertTextures : EditorWindow
{
    [MenuItem("工具/UI转换工具")]
    private static void ShowWindow()
    {
        GetWindow(typeof(ScanAndConvertTextures));
    }

    private void OnGUI()
    {
        GUILayout.Label("将图片批量转换的工具,自动将02_UI下的png和jpg格式的图片转换为Sprite,并且分辨率改为1024", EditorStyles.boldLabel);

        if (GUILayout.Button("开始转换"))
        {
            ConvertTextures();
        }
    }
    private void ConvertTextures()
    {
        string folderPath = "Assets/02_UI";  // 修改为你想要扫描的文件夹路径

        string[] files = AssetDatabase.FindAssets("t:Texture2D", new[] { folderPath });

        foreach (var file in files)
        {
            string path = AssetDatabase.GUIDToAssetPath(file);
            TextureImporter importer = AssetImporter.GetAtPath(path) as TextureImporter;

            if (importer != null && (System.IO.Path.GetExtension(path) == ".png" || System.IO.Path.GetExtension(path) == ".jpg"))
            {
                if (importer.textureType != TextureImporterType.Sprite)
                {
                    importer.textureType = TextureImporterType.Sprite;
                    importer.spriteImportMode = SpriteImportMode.Single;

                    TextureImporterSettings textureSettings = new TextureImporterSettings();
                    importer.ReadTextureSettings(textureSettings);

                    textureSettings.maxTextureSize = 1024;
                    textureSettings.compressionQuality = (int)TextureCompressionQuality.Normal;
                    importer.crunchedCompression = true;
                    importer.SetTextureSettings(textureSettings);
                    importer.SaveAndReimport();
                    CrunchTexture(path);
                }
            }
        }

        Debug.Log("转换成功");
    }

    private void CrunchTexture(string path)
    {
        var texture = AssetDatabase.LoadAssetAtPath<Texture2D>(path);
        if (texture != null)
        {
            EditorUtility.CompressTexture(texture, TextureFormat.RGBA32, TextureCompressionQuality.Normal);
        }
    }
}

该脚本会在unity上方的工具栏中生成一项选择,像这样:

Unity的小工具

 

不过要注意:1、这个脚本只转换.png或者.jpg格式的图片(当然,你可以自己改)

                      2、这个脚本会忽略已经转换过Sprite的图片文章来源地址https://www.toymoban.com/news/detail-505780.html

到了这里,关于Unity的小工具的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包