我整天都在搜索大量问题,但似乎找不到解决我的问题的答案,所以我希望有人能帮助我。为什么多个Unity协同程序加速www图像加载?
我想在Unity场景中显示多个图像流。我有几个附带加载脚本的GameObjects,例如
GameObject1与脚本Loader.cs(调用启动协程)
GameObject2与脚本Loader.cs(调用启动协程)
GameObject3与脚本Loader.cs(调用协程在Start)
,并通过在这个脚本协程加载我的图片:
IEnumerator Load()
{
Texture2D tex = new Texture2D(4, 4, TextureFormat.DXT1, false);
while (true)
{
WWW www = new WWW(url);
yield return www;
www.LoadImageIntoTexture(tex);
img.texture = tex;
}
}
(其中img.texture是我在场景中的图像,url是我从中加载的url)。
这适用于加载图像,但我注意到图像加载/流更快,一旦我开始更多的协程。为了澄清,如果我有1个图像流,它以一定的速度更新图像,但如果我有,例如3个图像流(每个图像流具有用于加载的协同程序)突然全部3个流加载图像比1个流更快。
我试图在协程结束时添加一个yield return new WaitForFixedUpdate();
,但它没有帮助,我也不知道如何在加载新图像时取得一个固定的速度,独立同时有多少流/协同程序? 我希望我很明白我的意思,并感谢任何帮助!
你的问题是不完整的......多重协同程序在哪里?你的意思是你在一帧中多次调用'Load'? – Programmer
@程序员对不起,我编辑了我的问题来澄清。同一个脚本在场景中多次出现,每次调用一次协程(在协程中它会循环加载/流式传输) – user3647967
这是一个疯狂的事情,特别是当每个协程函数有'while'循环时,这意味着他们3个协程正在尽快更新映像。也许有更好的方法来做到这一点。流的来源是什么?这是什么类型的流? – Programmer