Texture2D在编辑器中工作,但在Android设备

时间:2017-04-18 15:30:07

标签: android unity3d textures

我正在尝试使用以下代码更改对象的纹理:

Texture2D baileyburlwood = Instantiate(Resources.Load("bailey burlwood") as Texture2D);
    myObject.GetComponent<Renderer>().material.mainTexture = baileyburlwood;

它在编辑器中工作得非常好,纹理发生了变化但是当我试图在我的Android设备中运行它时,我的对象变黑了。也没有错误或任何警告。请帮忙!谢谢!

我正在使用Unity 5.5.1f btw

I added a screenshot of where the file is located

1 个答案:

答案 0 :(得分:0)

从更新后的问题中的屏幕截图中,您要加载的图片名为 bailey burlwood.jpg ,该文件已在 Resources 文件夹中。

这就是问题所在:

Instantiate(Resources.Load("bailey burlwood") as Texture2D);

您实例化预制件,脚本和组件普通类,如Texture2D

如果 bailey burlwood.jpg bailey burlwood.prefab 并且您使用GameObject prefab = Resources.Load("shipPrefab", typeof(GameObject)) as GameObject;加载它,那么您的代码就会有用,但那不是案例在这里。

由于&#34; bailey burlwood&#34; 文件是JPG文件,您应该像这样加载:

Texture2D baileyburlwood = Resources.Load("bailey burlwood") as Texture2D;
myObject.GetComponent<Renderer>().material.mainTexture = baileyburlwood;

请注意,不涉及Instantiate功能。有关如何使用Resources文件夹加载具有不同图像设置的其他图像文件,请参阅this帖子。