c# - Shader.Find("Standart") 返回 null
问题描述
我看到了这个问题,但这个解决方案对我没有帮助。
在自定义编辑器窗口中,我将标准着色器设置为某些材质。材料是从项目中的文件夹加载的:
List<Material> materials = new List<Material>();
string[] _matPaths = FindAssetPathsWithExtension(".mat", folderWithMaterials);
foreach (string materialPath in _matPaths)
{
Material mat = AssetDatabase.LoadAssetAtPath(materialPath, typeof(Material)) as Material;
if (mat != null) { materials.Add(mat); }
}
string filePath = "";
for (int i = 0; i < materials.Count; i++)
{
materials[i].shader = Shader.Find("Standart");
Debug.Log(materials[i].shader);
}
图形设置截图:
调试日志:Hidden/InternalErrorShader (UnityEngine.Shader)
解决方案
我 120% 确定它不被称为标准(也许是标准?)。如果您想知道着色器的名称是什么,则必须查看源代码。您可以从 Unity 网站的下载部分获取 Unity 内置着色器的源代码。
推荐阅读
- wordpress - Wordpress:问题注册/排队样式表
- python - 带有关系数据的 Django 模型表单提交
- sql - PLS-00302:必须声明组件“VARIABLE_SKU_ID”
- java - 如何获取用户输入并转换为使用泛型类型类所需的类型?
- reactjs - 反应改变状态
- excel - 你能有一个既是工作簿又是字符串的变量吗?
- vue.js - 在 v-for 后跟 v-if 的基础上在 Vue JS 中添加 CSS 类
- angular - ngClass 指令条件 else 或 ? 'class1':'class2'
- python - Jenkins Python 作业因“ImportError ...”而失败,但在相同的分支上成功构建
- sql - 将文本转换为数字以进行客户满意度调查