unity 加载一张大图和四张小图哪个快

前言

甲爸爸反馈四张小图和一张大图加载的速度没有变化,和我预测不太一致,做个小测试支持一下我的猜测


一张3.5M的大图和四张800k左右的小图用UnityWebRequestTexture加载速度比较
代码如下(示例):

private IEnumerator loadTexture(string url, Action act = null)
{
    Debug.LogError(url + " start :" + Time.realtimeSinceStartup);
    System.Uri uri = new System.Uri(url);
    UnityWebRequest www = UnityWebRequestTexture.GetTexture(uri, true);
    yield return www.SendWebRequest();
    if (www.isNetworkError || www.isHttpError)
    {
        Debug.Log(www.error);
    }
    else
    {
        Debug.LogError(url + " end :" + Time.realtimeSinceStartup);
        //获取并创建Texture
        if (((DownloadHandlerTexture)www.downloadHandler).texture != null)
        {
            Texture texture = ((DownloadHandlerTexture)www.downloadHandler).texture;
        }
    }
    www?.Dispose();
    act?.Invoke();
}

在这里插入图片描述四张切割图的用时:0.244979
在这里插入图片描述一张大图的用时:0.497396
不知道我测试的方式是否准确,上面的方式来看,四张切割图用时是远远小于一个大原图的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Unity中可以通过切割图片的方式,将一张大图切割成若干个小图加载到游戏中。 首先,我们需要准备一张包含所有小图大图。在Unity中,可以使用Sprite工具来切割大图。在导入大图后,选择该图片,右键点击,选择“Sprite Editor”打开Sprite编辑器。 在Sprite编辑器中,可以使用多种方式来切割大图。比如,可以选择“Grid by Cell Size”来按照指定的尺寸和行列数来切割大图。也可以选择“Polygon”来手动选择切割区域。确定好切割方式后,点击“Apply”按钮进行切割。 切割完成后,每个小图都将成为一个单独的Sprite对象。我们可以将这些小图拖拽到Unity场景中或者用于UI元素。可以通过代码来动态加载和显示这些小图。 在代码中,可以通过Resources.Load方法来加载切割后的小图。首先需要将小图所在的文件夹设置为Resource文件夹,然后使用Resources.Load方法加载指定的小图。 在加载小图后,可以将其设置为一个Sprite对象,并将其赋给Image组件或者SpriteRenderer组件来显示出来。 需要注意的是切割后的小图资源在加载时,Unity并不会加载整张大图,而是只会加载指定的小图资源,这样可以有效地减少资源的占用和加载时间。 因此,通过切割图片并加载若干个小图,我们可以在Unity中方便地使用大图中的各个部分,实现各种游戏效果和UI设计。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值