在UE4中的蓝图函数中,有一个DownloadImage 异步任务函数,当然异步任务就是为了不阻塞我们的操作,即使在有大量的异步任务时也没有太多的影响,这里的异步任务当然已经满足上述的简单要求。
BUT,异步获得的图片,我们需要将Texture显示到一个图片列表的时候就有问题了,当在蓝图中用一个循环创建了10个UI控件后,我也创建了10个DownloadImage 的异步任务来下载图片,然后显示到对应的10个控件中。 问题就出现在这里,蓝图中我通过循环创建的变量只保留了最后一个变量的引用,当耗时的异步任务完成后,就把所有的Image显示到了最后创建的UI控件中
当然,我也想过将创建的UI控件保存到数组中,可是当下载任务完成时,也就是Task onSuccess 的代理,依然并不知道该将下载的数据给哪一个控件,因为这个DownloadImage 函数(Async Task)并没有关于创建该任务的任何标识信息。如此结果,我便不能知道将下载结果给谁。