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