技术笔记(7)Unity导入人物和场景资源,出现的材质显示问题

技术笔记(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.

热门相关:唐朝小官人   妖夏   盛唐小园丁   一个和四个   致命的诱惑