Unity动态纹理变化

时间:2016-01-11 16:55:31

标签: c# unity3d textures mesh unity5

我在blender3d中构建模型并将其导入到fbx中的unity项目中。该模型包含两种材料。之后,我尝试更改materials[1].mainTexture的纹理:

texs = Resources.LoadAll("", typeof(Texture2D));
photos.GetComponent<Renderer> ().materials[1].mainTexture = (Texture2D)texs[10];

在编辑器模式下,一切似乎都很好,但是当我构建应用程序时,模型不会呈现。我已经发现如果我没有改变纹理,一切都会好起来的。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

在游戏中加载所有Texture2D资源,然后将第二个材料mainTexture设置为这些加载的资源中的第11个纹理似乎有点冒险。如果向项目/纹理文件夹添加更多Texture2D s,则索引可能会更改。此外,也许Resources.LoadAll并不能保证您预期的顺序(在调试模式和发布模式下可能有所不同)。如果在该纹理集合中已经有一个10的静态索引,那么您应该将它声明为静态(或者只是public Texture2D关于脚本并在检查器中指定它,即固定你想要应用的纹理。