Unity队列加载图片,解决大量同时加载资源卡顿问题与思路

这篇具有很好参考价值的文章主要介绍了Unity队列加载图片,解决大量同时加载资源卡顿问题与思路。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、思路:加载图片的请求都加到队列中,然后一个加载完一个再去加载下一个,直到加载完。

List<Action> _loadAction = new List<Action>();

public void LoadRaw(string url, Image image)
{
    if(string.IsNullOrEmpty(url)) return;
    _loadAction.Add(()=>{ StartCoroutine(StartLoadImage(url,image))});
}

IEnumerator StartLoadImage(string url,Image image)
{
    using(UnityWebRequest uwr = UnityWebRequestTexture.GetTexture(url))
    {
        yield return uwr.SendWebRequest();
        if(uwr.isHttpError || uwr.isNetworkError) Debug.Log(uwr.error);
        else
        {
            try
            {
                Texture2D texture2d = new Texture2D(1,1);
                texture2d = DownloadHandlerTexture.GetContent(uwr);
                image.sprite = Sprite.Create(texture2d,new Rect(0,0,texture2d.width,texture2d.height),Vector2.zero);
                Resources.UnloadUnusedAssets();
                _loadAction.RemoveAt(0);
                isLoad = false;
            }
            catch(Exception ex)
            {

            }
        }
    }
}

bool isLoad = false;
Void Update()
{
    if(!isLoad && _loadAction.Count != 0)
    {
        isLoad = true;
        Action action = _loadAction[0];
        action.Invoke();
    }
}

2、问题:

        问题是相对也存在的。当加载的数据还在队列中,但是已经跳转到其它的场景,则会出现报错的问题。

        每次跳转场景的时候,需要把队列中的数据情况,然后isLoad=false;文章来源地址https://www.toymoban.com/news/detail-564288.html

到了这里,关于Unity队列加载图片,解决大量同时加载资源卡顿问题与思路的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Unity使用 Addressables 预加载所有资源,提现加载资源,发布webgl加载缓慢问题

    Addressables 我也是刚接触,知道的不是很多,基本的用法还是知道一些的 1 .在Window–Package Manager里找到Addressables进行安装   2.选择资源,点击Assets中的一个资源,在Inspector面板上就会出现一个勾选Assressable,也就是是否加入资源打包的分组,和AssetBundle分组是一个性质。选上以

    2023年04月08日
    浏览(46)
  • vue如何动态加载显示本地图片资源

    在实际开发中,根据某一个变量动态展示图片的情况有很多。实现方法分打包构建工具的差异而不同。 1、webpack的项目 require引入图片资源 2、vite的项目 new URL(url,base).href 疑问解答:为什么vite项目不可以用require? 原因在于,vite的模块化规范是ES Modules,所以vite项目在打包构建

    2024年02月22日
    浏览(55)
  • vue3:加载本地图片等静态资源

    在我们用 vue2 + webpack 的时候,加载图片资源是这样用的: 这样打包后就会触发 file-loader 打包图片资源,在 dist 文件夹中就可以看到这个图片(如果图片较小会打包进代码中变为 base64 引入)。 但是在 vue3 + vite 中,使用这种方式是不行的,vite 中没有 require 会报错。 解决方案

    2024年01月18日
    浏览(45)
  • Unity中资源异步加载

            Unity作为一款优秀的游戏引擎,广泛应用于游戏制作领域。在游戏的开发过程中,资源加载的效率和流畅度尤为重要。对于较大的资源文件,同步加载方式可能会导致游戏卡顿、延迟等问题。因此,采用异步加载的方法可以提高游戏的效率和用户体验。 本篇博客将

    2024年02月06日
    浏览(58)
  • Unity资源加载方式

    Resources:逻辑资源目录,这个目录中的资源会 打入到包 中, 不允许热更 。在打包时会被压缩和加密。 加载方式:Resources.Load(常用) 、 AssetDatabase.LoadAssetAtPath等加载接口 StreamingAssets:Raw资源目录,这个目录中的资源也会 打入到包 中,且允许程序通过Application.streamingAsse

    2023年04月09日
    浏览(38)
  • 网站开发中如何优化图片资源的加载速度

    在网站开发中,优化图片资源的加载速度对于提高用户体验和网站性能至关重要。通过采取一系列的优化措施,可以减少图片的文件大小,改善加载速度,并确保图片在不影响质量的情况下显示良好。 使用适当的图片格式:选择适合的图片格式可以有效减少文件大小。JPEG适

    2024年02月05日
    浏览(52)
  • [DNS网络] 网页无法打开、显示不全、加载卡顿缓慢 | 解决方案

    最近,我在使用CSDN插件浏览 MOOC 网站时,遇到了一些网络故障。具体表现为: 点击CSDN插件首页的 MOOC(中国大学慕课)图标时,网页加载缓慢且资源加载不完全,导致 网页显示不全或无法正常使用 。 在已登录并保存了Cookie的情况下,个人课程页面一直处于白屏加载状态,

    2024年02月04日
    浏览(53)
  • 使用双缓冲技术解决winform窗体控件卡顿(dataGridView加载数据缓慢)

    在做C/S项目中,做好的窗体出现了页面加载控件缓慢,放大、缩小窗体之后,窗体加载卡顿,以及数据渲染缓慢。 百度介绍:我们看电视时,看到的屏幕称为OSD层,也就是说,只有在OSD层上显示图像我们才能看到。现在,我需要创建一个虚拟的、看不见但是可以在上面画图(

    2024年02月02日
    浏览(45)
  • vue中图片不显示问题 - vue中静态资源加载

    在 JavaScript 被导入或在 template/CSS 中通过 相对路径 被引用。这类引用会被 webpack 处理后再输出到打包后的文件。 放置在 public(static)目录下或通过绝对路径被引用。这类资源将会直接被拷贝到打包后的文件 ,而不会经过 webpack 的处理。 在 config.js 的 build.assetsPublicPath 和 build

    2024年01月25日
    浏览(45)
  • 【Unity程序技巧】 资源加载管理器

    👨‍💻个人主页 :@元宇宙-秩沅 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 秩沅 原创 👨‍💻 收录于专栏 :Unity基础实战 1.涉及知识点 2. 特点 方便加载资源,为资源加载提供了接口 3.脚本 加载测试 ⭐【Unityc#专题篇】之c#进阶篇】 ⭐【Unityc#专

    2024年02月07日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包