【发布时间】: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