技术笔记(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.
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 【.NET】调用本地 Deepseek 模型
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业