如上所述here我不是唯一发现以下问题的人:
Shader.Find返回Null。
在上面的链接中,他们通过在资源文件夹中创建(?)来提供解决方案,但我不确定我理解。首先,这对所有情况都是必要的吗? (意思是Shader.Find本身不起作用?) 其次,我应该添加什么?一个没有点亮的着色器?一种材料? 这里很困惑
答案 0 :(得分:4)
我最终可以通过以下方式解决问题:
首先,转到统一编辑器:编辑 - >项目设置 - >图像 然后在检查器中显示“Always Included Shaders”添加“Unlit / Texture”
然后将我的Shader.Find代码更改为Shader.Find("Unlit/Texture");
使用它不再返回null
答案 1 :(得分:2)
您应该将着色器添加到任何场景对象中,否则它们只能在编辑器中使用。 将着色器添加到“资源文件夹”中,或者可以创建新的着色器。
在资源文件夹中
右键单击->创建->材质 选择材质后,您将在检查器中看到“着色器”字段,为您选择合适的材质。
例如: 在我的脚本中;
var newMtl = new Material(Shader.Find("Standard (Specular setup)")) { name = materialName };
所以我添加了材质,然后选择“标准(镜面设置)”作为着色器。