Unity动态纹理变化

本文关键字:变化 纹理 动态 Unity | 更新日期: 2023-09-27 18:29:47

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

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

在编辑器模式下,一切似乎都很好,但当我构建应用程序时,模型不会渲染。我已经发现,如果我不改变纹理,一切都会渲染得很好。

我该如何解决这个问题?

Unity动态纹理变化

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