Unity Hololens资产流优化

时间:2017-09-07 14:32:37

标签: c# unity3d hololens

我正在使用Hololens应用程序,该应用程序显示带有用户信息的PNG图像。图像从协程中的StreamingAssets文件夹加载。问题在于加载这些资产的速度。如果用户循环到另一个页面,则该应用程序会暂时降至PC上的大约1-3 FPS。

我希望你们中的一些人可以帮助我,想一想优化这些图像的存储和流媒体的方法。有没有办法,例如,以较低的分辨率加载图像以节省时间和内存(硬件的内存非常有限),并在实际需要显示时加载其他细节?多线程会在加载图像时使帧率更好吗?

1 个答案:

答案 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上,一次只能显示一个图像。