Unity導入模型經常出現紋理丢失的問題。本人做了個測試,發現紋理如果使用中文名稱或者紋理處于中文目錄下,都會出現問題。
測試如下:
使用max建立4個測試模型。從左邊到右邊的4個模型,使用的紋理路徑分為别:
中文圖檔.JPG; En_img.JPG; 中文檔案夾\En_img_in_ZH.JPG; 中文檔案夾\中中圖檔.JPG
将場景導出為test.PBX,将PBX檔案和然後将4個紋理圖檔拷貝到Unity的Assets目錄下。
這裡注意。由于Unity會對每一個紋理檔案檔案生成全局的唯一ID,是以就算你把所有的紋理檔案丢在Unity工程的一個目錄下也可以找到。
不過這帶來的問題是紋理名不能有重名。
将test.PBX拖入場景,發現隻有不在中文目錄下的英文紋理名能被正确加載。
同時可以注意到,Unity成成的Materials檔案夾内,紋理名為中文的.mat檔案都變成了亂碼。
同樣的,放在中文路徑下的紋理,會出現找不到紋理檔案。
當然,在這裡可以手動指定紋理檔案。如果模型多的話自然是很麻煩的事。
總結一下,導出模型時,紋理要注意以下幾點:
1、模組化的時候,紋理名不要使用中文。
2、模組化的時候,紋理檔案不要放在中文目錄下。但是可以放在Unity工程裡面的中文目錄下。
3、工程中每個紋理名不要重名。
4、修改了紋理以後,在Unity中删除模型的Materials檔案夾,然後重新導入PBX即可更新。