Shader.Find(“ Standart”)返回null

时间:2018-11-28 11:55:22

标签: c# unity3d

我看到了this问题,但是此解决方案并没有帮助我。

在自定义编辑器窗口中,我将Standart着色器设置为某些材质。资料是从项目中的文件夹加载的:

        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);
        }

图形设置屏幕截图:

enter image description here

调试日志: 隐藏/ InternalErrorShader(UnityEngine.Shader)

1 个答案:

答案 0 :(得分:1)

我有120%的把握不称其为standarT(也许是标准的?)。如果您想知道着色器的名称是什么,则必须查看源代码。您可以从Unity网站内置着色器的源代码下载中获取源代码。