技術筆記(7)Unity匯入人物和場景資源,出現的材質顯示問題

静候霜白發表於2024-03-11

技術筆記(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.

相關文章