技術筆記(7)Unity匯入人物和場景資源,出現的材質顯示問題
一,如果兩個人物擁有同名但內容不同的的材質shader
-
error:
Unity在匯入的時候,識別到近似內容時,會用新的內容去替換同名shader的內容,而不是重新建立一個。這樣就會導致第一個人物的材質顯示異常,其本質是shader內容被替換了。
-
解決方案:
嘗試了多次各種匯入資源的方式,最終選擇了一個妥協折中的方法。
在匯入完第一個人物之後,就將所有衝突重名的shader重新命名,且shader內部也需要重新命名。前者是為了匯入資源時,Unity能做出區分;後者是為了避免人物材質引用shader時出現錯誤。
二,shader引用的.cginc檔案找不到或無法開啟
-
error:
報錯資訊如下:
Couldn't open include file 'CharaMain.cginc'
即shader中引用到的include檔案無法開啟
出現的契機是我修改了shader名,並轉移到其他資料夾中。有時這樣不會出錯,甚至有時是在我再次匯入其他資源時,這個報錯才出現。
-
解決方案:
主要原因是include 檔案的時候,使用的相對路徑,所以引用到的那個檔案必須與shader放在同一個目錄之下才能找到。
將所有引用到的檔案複製一份,放到shader同一個目錄之後,人物材質shader的顯示恢復了正常。
解決幫助來源:
Make sure your shader file if it includes other files has the right folder structure. I ran into this also after I moved my files around into different folders. It is basically breaking the connection between the custom files.
IE: In my shader file I include a resource file. I used to just have it here in the root like this.
#include "/CustomShaderFile.cginc"
So when I moved my custom shader into a new folder I had to change the structure so it looked in the right folder.
#include "../ShadersFolder/CustomShaderFile.cginc"
Hope this helps.