Unity3d导入图片自动修改TextureType为Sprite(2D and UI)及设置Packing Tag为文件夹名。

Unity3d导入图片自动修改TextureType为Sprite(2D and UI)及设置Packing Tag为文件夹名。



前言

Unity中每次导入新的图片都要去设置TextureType为Sprite(2D and UI)打包图集时候还要设置PackingTag为文件夹名,手动设置无疑是异常麻烦的,工作量也是巨大的,所以搞一个便利的小工具是很有必要事情。


一、资源导入函数AssetPostProcessor

该函数允许您挂接到导入管线并在导入资源前运行脚本。

1.using UnityEditor命名空间

在使用该函数时需要引用命名空间:using UnityEditor。

2.OnPostprocessTexture()

描述:纹理导入Unity,在纹理完成导入之前获取通知。

using UnityEditor;

public class Test : AssetPostprocessor
{
    void OnPreprocessTexture()
    {
        Debug.Log("资源导入通知");
    }

}

3.AssetPostProcessor.assetImporter

对资源导入器的引用。

二、纹理导入器TextureImporter。

描述:纹理导入器允许你从编辑器脚本修改Texture2D导入设置。

1.TextureImporter .textureType

描述:当前正在处理的纹理类型

代码如下(示例):

using System.IO;
using UnityEditor;

public class Test: AssetPostprocessor
{
    void OnPreprocessTexture()
    {
        TextureImporter textureImporter = (TextureImporter)assetImporter;
        textureImporter.textureType = TextureImporterType.Sprite;
    }

}

二、目录操作Path。

描述:对文件或者目录路径信息的字符串执行操作。

1.Path .GetDirectoryName()

描述:返回指定路径字符串的目录名称组件

2.Path .GetFileName(string)

描述:返回文件名称,包含指定路径字符串的扩展名。

代码如下(示例):

using System.IO;
using UnityEditor;

public class Test: AssetPostprocessor
{
    void OnPreprocessTexture()
    {
        TextureImporter textureImporter = (TextureImporter)assetImporter;
        // 设置纹理类型
        textureImporter.textureType = TextureImporterType.Sprite;
		
		// 返回文件所在路径
        string dirName = Path.GetDirectoryName(assetPath);
        // 获取文件夹名
        string folderStr = Path.GetFileName(dirName);
        // 设置打包标签
        textureImporter.spritePackingTag = folderStr;
    }

}

总结

成长就是这样,痛并快乐着。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值