我正在使用Hololens应用程序,该应用程序显示带有用户信息的PNG图像。图像从协程中的StreamingAssets文件夹加载。问题在于加载这些资产的速度。如果用户循环到另一个页面,则该应用程序会暂时降至PC上的大约1-3 FPS。
我希望你们中的一些人可以帮助我,想一想优化这些图像的存储和流媒体的方法。有没有办法,例如,以较低的分辨率加载图像以节省时间和内存(硬件的内存非常有限),并在实际需要显示时加载其他细节?多线程会在加载图像时使帧率更好吗?
答案 0 :(得分:0)
所以程序员在评论中的建议完全消除了性能问题。下面的代码是用于在启动时在所需图像中流式传输的协程。
IEnumerator LoadImages()
{
int oldImgIndx = imageIndex;
imageIndex = 1;
bool thereAreImages = true;
while (thereAreImages && imageIndex < 1000)
{
if (System.IO.File.Exists(CreateFilePath(imageIndex)))
{
string url = "File:///" + CreateFilePath(imageIndex);
Texture2D tex = new Texture2D(4, 4);
WWW www = new WWW(url);
yield return www;
www.LoadImageIntoTexture(tex);
spriteList.Add(Sprite.Create(tex, new Rect(0, 0, tex.width, tex.height), new Vector2(0.5f, 0.5f)));
imageIndex++;
}
else
{
thereAreImages = false;
}
}
finished = true;
imageIndex = oldImgIndx;
}
Hololens的问题在于www.LoadImageIntoTexture(tex);
行。在PC端显示多个图像时需要此代码,但在Hololens上,一次只能显示一个图像。