我正在尝试使用以下代码更改对象的纹理:
Texture2D baileyburlwood = Instantiate(Resources.Load("bailey burlwood") as Texture2D);
myObject.GetComponent<Renderer>().material.mainTexture = baileyburlwood;
它在编辑器中工作得非常好,纹理发生了变化但是当我试图在我的Android设备中运行它时,我的对象变黑了。也没有错误或任何警告。请帮忙!谢谢!
我正在使用Unity 5.5.1f btw
答案 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帖子。