使用c#脚本在Unity中更改gameobject上的纹理

时间:2014-03-05 10:11:08

标签: c# unity3d windows-phone

我使用c#脚本在Unity中创建了一个换装游戏,当我使用以下代码单击更改按钮时,它会改变身体上的纹理:

gotexture = GameObject.Find ("Body");
Texture2D mytexture=(Texture2D) Resources.LoadAssetAtPath("Assets/characters/Female/textures/texture2.tga",typeof(Texture2D));
gotexture.renderer.material.mainTexture = mytexture;

当我以统一的方式运行项目时,此代码会更改正文上的纹理,但是当我为Windows Phone构建项目并运行它时,单击按钮时纹理不会改变。 在Windows Phone上使用时,是否有任何要更改的纹理设置?纹理是tga文件。

1 个答案:

答案 0 :(得分:0)

构建项目时,您的资源不会与项目中的资源相同。不要使用Resources.LoadAssetAtPath,只需使用Resources.Load

为了使用它,您需要将可能动态加载的任何内容放在名为Resources的文件夹下。例如,

Resources
|___
    -Textures
    -Sound Effects
    -Prefabs
    -etc

现在您可以加载这些资产:

Resources.Load("Textures/myTexture");

这对于加载预制件也非常方便!无论你在哪里运行它都应该有效。

注意:我相信你这样使用它时会省略文件扩展名。我不太记得,我不在一个可以测试它的地方。如果它不起作用,只需使用文件名,直到它工作。