天天看点

Unity导入模型的中文纹理文件问题

Unity导入模型经常出现纹理丢失的问题。本人做了个测试,发现纹理如果使用中文名称或者纹理处于中文目录下,都会出现问题。

测试如下:

使用max建立4个测试模型。从左边到右边的4个模型,使用的纹理路径分为别:

中文图片.JPG;  En_img.JPG;  中文文件夹\En_img_in_ZH.JPG;  中文文件夹\中中图片.JPG

Unity导入模型的中文纹理文件问题

将场景导出为test.PBX,将PBX文件和然后将4个纹理图片拷贝到Unity的Assets目录下。

这里注意。由于Unity会对每一个纹理文件文件生成全局的唯一ID,因此就算你把所有的纹理文件丢在Unity工程的一个目录下也可以找到。

不过这带来的问题是纹理名不能有重名。

将test.PBX拖入场景,发现只有不在中文目录下的英文纹理名能被正确加载。

Unity导入模型的中文纹理文件问题

同时可以注意到,Unity成成的Materials文件夹内,纹理名为中文的.mat文件都变成了乱码。

Unity导入模型的中文纹理文件问题

同样的,放在中文路径下的纹理,会出现找不到纹理文件。

Unity导入模型的中文纹理文件问题

当然,在这里可以手动指定纹理文件。如果模型多的话自然是很麻烦的事。

总结一下,导出模型时,纹理要注意以下几点:

1、建模的时候,纹理名不要使用中文。

2、建模的时候,纹理文件不要放在中文目录下。但是可以放在Unity工程里面的中文目录下。

3、工程中每个纹理名不要重名。

4、修改了纹理以后,在Unity中删除模型的Materials文件夹,然后重新导入PBX即可更新。

继续阅读