【Unity之UI编程】在Unity中如何打图集,来降低DrowCall

在这里插入图片描述


‍个人主页:@元宇宙-秩沅

‍ hallo 欢迎 点赞 收藏⭐ 留言 加关注✅!

本文由 秩沅 原创

‍ 收录于专栏UI_Unity专栏

在这里插入图片描述


打图集


文章目录

    • 打图集
    • 前言
    • 激活可打图集的步骤
      • 第一步 _激活Sprite Packer
    • 选择勾选:Always Enabled: Unity在构建时打包图集,在编辑模式下运行前会打包图集
      • 第二步 在文件夹下面创建Sprites Atlas (图集)
      • 第三步 _取消勾选 Allow Rotation 和 Tigjt Packing
      • 第四步_添加需要添加的图,让其成为图集
      • 第五步 打图集
      • 第六步_用代码加载出来
    • ⭐相关文章⭐


前言


****


激活可打图集的步骤


第一步 _激活Sprite Packer

Edit -> Project Setting ——>Editor ——>Sprite Packer (图集精灵包激活)
【Unity之UI编程】在Unity中如何打图集,来降低DrowCall_第1张图片

以前的版本

【Unity之UI编程】在Unity中如何打图集,来降低DrowCall_第2张图片

Sprite Packer(精灵包装器,可以通过unity自带图集工具生成图集)

  • Disabled:默认设置,不会打包图集
  • Enabled For Builds (Legacy Sprite Packer) : Unity仅在构建时打包图集,在编辑模式下不会打包图集
  • Always Enabled (Legacy Sprite Packen) : Unity在构建时打包图集,在编辑模式下运行前会打包图集
  • Legacy Sprite Packer传统打包模式相对下面两种模式来说多了一个设置图片之间的间隔距离
  • Padding Power:选择打包算法在计算打包的精灵之间以及精灵与生成的图集边缘之间的间隔距离
    这里的数字代表2的n次方
  • Enabled For Build: Unity进在构建时打包图集,在编辑器模式下不会打包
  • Always Enabled: Unity在构建时打包图集,在编辑模式下运行前会打包图集

2021版本

【Unity之UI编程】在Unity中如何打图集,来降低DrowCall_第3张图片

在这里插入图片描述

__

选择勾选:Always Enabled: Unity在构建时打包图集,在编辑模式下运行前会打包图集

第二步 在文件夹下面创建Sprites Atlas (图集)

【Unity之UI编程】在Unity中如何打图集,来降低DrowCall_第4张图片

第三步 _取消勾选 Allow Rotation 和 Tigjt Packing

在这里插入图片描述

  • 防止出现BUgs
    【Unity之UI编程】在Unity中如何打图集,来降低DrowCall_第5张图片

第四步_添加需要添加的图,让其成为图集


  • 添加需要添加的图,让其成为图集
    【Unity之UI编程】在Unity中如何打图集,来降低DrowCall_第6张图片

第五步 打图集


【Unity之UI编程】在Unity中如何打图集,来降低DrowCall_第7张图片

第六步_用代码加载出来


  SpriteAtlas atlas = Resources.Load<SpriteAtlas>("Atlas1");  //将图集加载出来
        switch (ItemData.state )
        {
            case 1:
                state.gameObject.SetActive(false);
                break;
            case 2:
                state.sprite = atlas.GetSprite("hot");
                break;
            case 3:
                state.sprite = atlas.GetSprite("buzzy");
                break;
            case 4:
                state.sprite = atlas.GetSprite("smoothy");
                break;
            case 5:
                state.sprite = atlas.GetSprite("recover");
                break;
            default:
                break;
        }


⭐相关文章⭐


⭐ 软件设计师高频考点大全⭐

⭐ unity之c#专题篇—系统强基⭐



你们的点赞 收藏⭐ 留言 关注✅是我持续创作,输出优质内容的最大动力!

你可能感兴趣的:(#,unity实战基础,#,UnityUI篇,unity,ui,游戏引擎)