无法在 Unity 脚本中设置 Material 的 mainTexture

Cannot set mainTexture of a Material in Unity Script

我正在尝试设置 Material 的 mainTexture 但没有成功。这是我正在使用的一段代码:

//Material
skinData.m_Diffuse = new Material(Shader.Find("Unlit/TransparentVertexCol"));
UnityEngine.Object o;
node = root.GetChild("Diffuse");
if( node != null )
{
    string name = node.value;
    o = Resources.Load<Texture2D>(name);
    skinData.m_Diffuse.mainTexture = Resources.Load<Texture2D>(name);
}

我添加了对象 o 用于调试目的。当我跟踪代码时,我将 o 设置为 Texture2D 并且我的 skinData.m_Diffuse.mainTexture 为空。它在几周前工作。与此同时,我将 Unity 更新到 5.3 版并添加了许多其他不应直接影响它的脚本。

我想我可以设置一个像 o 而不是 mainTexutre 的 "free" 变量一定是有原因的,但是没有消息,没有例外,没有任何消息,所以如果有人有任何想法......

我的问题与无法正常工作的 shadercompiler.exe 有关。当时我没有收到具体消息,然后,当我尝试编辑我的着色器以查看可能出现的问题时,我开始遇到另一个问题,您可以在此处看到 。最后,代码中的一切都很好。 全部由补丁 5.3.1p3

解决