【问题标题】:Changing texture on gameobject in Unity using c# script使用 c# 脚本在 Unity 中更改游戏对象的纹理
【发布时间】:2014-03-05 10:11:07
【问题描述】:

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

【问题讨论】:

    标签: c# unity3d windows-phone


    【解决方案1】:

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

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

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

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

    Resources.Load("Textures/myTexture");
    

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-01-23
      • 1970-01-01
      • 2016-11-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-01
      相关资源
      最近更新 更多