【问题标题】:Unity3D trying to load a texture resource after buildUnity3D 尝试在构建后加载纹理资源
【发布时间】:2014-12-21 04:00:21
【问题描述】:

我有一个使用纹理(图像)的材质,该材质位于 Assets 下的 Resources 目录中。在编辑器中使用 Resources.load 有效。纹理也在构建时正确加载,但我想在构建后通过在构建的资源目录中放置不同的图像(具有相同的名称)来替换该图像。

在 Windows 上,我认为该目录是 buildname_Data>Resources,而在 Mac 上,我认为它是 Contents>Resources(打开包内容后)。这适用于我用来在启动时加载一些数据的文本文件,但那里的过程有点不同,因为在这种情况下我没有使用 Resources.load。

我遇到的问题是,仅将新图像放置在(我认为)正确的位置并不会覆盖构建应用程序时使用的图像。我仍然看到原始图像。在过去的几天里,我一直在为此摸不着头脑,文档(以及各种谷歌搜索)并没有对解决方案产生深入的了解(尽管它可能正盯着我的脸)。

var MyTexture : Texture = Resources.Load("colorPatch");

var wbpLineRenderer : LineRenderer = someGameObject.AddComponent(LineRenderer);
wbpLineRenderer.material = new Material (Shader.Find("Particles/Alpha Blended"));
wbpLineRenderer.material = Resources.Load("curveLine") as Material;
wbpLineRenderer.material.mainTexture = MyTexture;

curveLine是Editor的Assets/Resources目录下的材质。

colorPatch是编辑器Assets/Resources目录下名为colorPatch.png的图片文件

有人可以直接解决这个问题吗?我可以在构建后交换纹理上使用的图像吗?

【问题讨论】:

  • 为什么不同时使用它们呢?如果您认为这会占用大量空间,您可能需要考虑研究texture atlasing
  • 重点是,Unity 构建的应用程序将用作构建时不可用的“阅读器”或更确切地说是“信息显示器”。图像稍后会出现并且是外部的,但仍由构建的应用程序使用。

标签: unity3d


【解决方案1】:

在享用了一顿丰盛的早餐和更多的谷歌搜索之后,我(重新)发现了解决方案,详细信息 here

我的实现如下:

var textureURL : String = "file://" + Application.dataPath + "/Resources/colorPatch.png";
var www : WWW = new WWW(textureURL);
var tempTexture : Texture2D = new Texture2D(2, 2); //doesn't have to be the actual size
www.LoadImageIntoTexture(tempTexture); //image loads at 100% not 2x2 specified above

var wbpLineRenderer : LineRenderer = wellBorePath.AddComponent(LineRenderer);
wbpLineRenderer.material = new Material (Shader.Find("Particles/Alpha Blended"));
wbpLineRenderer.material = Resources.Load("curveLine") as Material;
wbpLineRenderer.material.mainTexture = tempTexture;

构建应用后,将名为 colorPatch.png 的图像放置在以下位置:

Windows - appname_Data/Resources
Mac - 内容/资源(打开包内容后)。

将图像 colorPatch.png 换成另一张图像(但仍以 colorPatch.png 为标题)然后启动应用程序,将新图像显示为纹理。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多