批量修改图片资源的属性。

Unity版本2022.3

如图,比如我们想要修改图片的属性的时候,大部分都是

csharp 复制代码
TextureImporter importer = (TextureImporter)AssetImporter.GetAtPath("Assets/1.png"); // 获取文件
importer.xxxxxxx = xxxxxxx; // 修改属性

到这里没什么问题,但是,如果现在我需要修改 sprite 轴心等相关数据的时候。

一般都需要我点开SpriteEditor。然后去手动设置轴心,锚点位置等等。最后再去点击那个应用,然后还要确认一次才能保存对应设置,那现在我有几千张图需要这么处理该怎么办呢,不可以一张一张手动设置吧。当然可以美工直接出对应图直接匹配默认轴心锚点。但如果你只有一个人, 没有这个条件呢?

好了,现在开始操作

csharp 复制代码
首先获取你的所有图片资源。
然后你可以拿到importer
	TextureImporter importer = (TextureImporter)AssetImporter.GetAtPath("Assets/1.png"); 


//修改图片资源的对应属性
    static void ModifySprite(TextureImporter importer)
    {
        if (importer != null)
        {

            importer.textureType =TextureImporterType.Sprite;
            TextureImporterSettings settings = new TextureImporterSettings();
            importer.ReadTextureSettings(settings);
            settings.spriteMode = (int)SpriteImportMode.Single;
            settings.spriteAlignment = (int)SpriteAlignment.Custom; // 轴心模式改成自定义
            settings.spritePivot = new Vector2(0.5f, 0.3333333f);
            settings.spritePixelsPerUnit = 100;
            settings.spriteBorder = new Vector4(0, 0, 0, 0);
            settings.spriteMeshType = SpriteMeshType.Tight;
            settings.spriteExtrude = 1;
            importer.SetTextureSettings(settings);
            importer.SaveAndReimport();
            Debug.Log("修改完成:" + importer.assetPath);
        }
    }

以上,就可以直接修改那些我们不能通过importer获取的属性了。

相关推荐
AlienZHOU3 小时前
AI Coding 时代下,我的技术面试实践分享
前端·后端·面试
玖玥拾5 小时前
Unity Shader 基础与图形学(一)
unity·图形渲染·图形学·shader
Captaincc6 小时前
AI用量v0.1.11更新发布 新增 jusage doctor 诊断指令 托盘展示token 和余额 新增 AutoClaw 支持
前端·后端·vibecoding
计算机魔术师8 小时前
德国Wiki被黑后两周,OpenAI终于把模型失控的账本摊开了
前端
kyriewen8 小时前
我让 AI 当面试官面了我一轮:第 3 个追问我就卡住了(附 10 道追问清单)
前端·面试·ai编程
IT_陈寒8 小时前
Python的GIL把我坑惨了,多线程跑得比单线程还慢
前端·人工智能·后端
前端snow9 小时前
ai agent --- 多agent框架之图编排引擎-langgraph
前端
竹林8189 小时前
OmniPic Studio v3.2.1 核心技术架构与全平台发版解析文档
前端·浏览器
JamesZhang800789 小时前
页面内存只涨不跌? 一次泄漏排查, 牵出 WeakMap 的诞生
前端
Z小明9 小时前
第 6 章 组件进阶
前端·vue.js