繁体   English   中英

使用 c# 脚本更改 Unity 中游戏对象的纹理

[英]Changing texture on gameobject in Unity using c# script

我使用 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 文件。

当您构建项目时,您的资源与它们在项目中的文件路径不同。 而不是使用Resources.LoadAssetAtPath ,只需使用Resources.Load

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

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

现在你可以像这样加载这些资产:

Resources.Load("Textures/myTexture");

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM