无法在 Unity 脚本中设置材质的主纹理

本文关键字:纹理 设置 Unity 脚本 | 更新日期: 2023-09-27 18:30:56

我正在尝试设置材质的主纹理,但没有成功。这是我正在使用的代码段:

//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 这样的"免费"变量,但没有消息,没有例外,所以如果有人有任何想法......

无法在 Unity 脚本中设置材质的主纹理

我的问题与着色器编译器有关.exe该编译器无法正常工作。当时我没有特定的消息,然后,当我尝试编辑我的着色器以查看可能出现的问题时,我开始遇到另一个问题,您可以在此处看到无法从 UnityShaderCompiler.exe着色器编译器获取套接字连接。我最后,代码中一切都很好。补丁 5.3.1p3 解决了所有

问题