精华内容
下载资源
问答
  • 项目导入后 记得启用,在Edit->Project Settings->Editor->Sprite Packer->Mode设置成Always Enabled ,然后Edit Tools -->AtlasMaker 下具体解释:...
  • unity 图集生成动画

    2018-06-26 15:04:24
    要注意文件名开头就是动画名 单图命名方式 : 动画名 + 下划线(_) + 三位序号 (000) 例如 Fireworks_000.png Fireworks_001.png 2.导入项目如果动画存在相同字段最好放在不同目录下
  • Unity 图集

    2017-12-27 11:17:21
    对于NGUI 的图集来说, 如果不是 刚好, 512*512, 1024*1024, 2048*2048 这种, 而是什么512*1024 之类的话, 在打包到手机上后, 即使是没有压缩的, 也会有一定程度的糊. 这种情况下, 应该把图集图片的导入格式改成...

    对于NGUI 的图集来说, 如果不是 刚好, 512*512, 1024*1024, 2048*2048 这种, 而是什么512*1024 之类的话, 在打包到手机上后, 即使是没有压缩的, 也会有一定程度的糊. 这种情况下, 应该把图集图片的导入格式改成editor GUI AndLegacy GUI. 这种格式, 对于不规则的图集来说, 渲染会好很多

    展开全文
  • Unity图集简介及使用

    千次阅读 2021-08-12 21:25:14
    Unity图集简介及使用 定义 图集是将很多零碎的2D小图整合成一张大图,方便unity渲染合批,降低渲染消耗。 优势 1.UI的合批处理,减少DrawCall 多张图片需要多次DrawCall,合并成一张大图只需要调用一次DrawCall 2....

    Unity图集简介及使用

    定义

    图集是将很多零碎的2D小图整合成一张大图,方便unity渲染合批,降低渲染消耗。

    优势

    1.UI的合批处理,减少DrawCall

    多张图片需要多次DrawCall,合并成一张大图只需要调用一次DrawCall

    2.减少对内存的占用

    OpenGL每张贴图都需要设置为2的N次方才能使用,假设有宽高分别为100x100、10x10的两张图片,如果不合成大贴图,那么就需要分别使用128x128和16x16的图片,会浪费一部分内存空间。

    如果是使用一张大图的话,就可以将两张图片打到128x128的图集,进而减少内存的占用。

    3.提升效率

    图片尺寸为2的次幂时,GPU处理起来会快很多,小图不可能做不到每张图都是2的次幂的,但打成一张大图就可以。

    图集整理策略

    1.尽量紧凑,大小不要超过512x512

    2.Draw Call尽量少,同一个界面的小图尽量在一个图集里

    3.内存管理方便,加载性能好,打开一个界面时只加载必要的图集,关闭时可以方便地释放图集

    4.AssetBundle打包、热更粒度合理,不能出现“热更一个新界面,大量图集都需要热更”的情况

    5.设计UI时要考虑重用性,将边框、按钮等共享资源,放在1~3张大图集中,作为重用图集;

    6.其它非重用UI按照功能模块进行划分,每个模块使用1~2张图集,作为功能图集;

    7.对于部分UI,如果同时用到功能图集与重用图集,但是其功能图集剩下的“空位”较多,则可以将重用图集中用到的元素单独拎出来,合入功能图集中,让UI只依赖于功能图集。通过一定的数据冗余,来实现性能的提升;

    注意控制图集的大小,不要让图集太大,一个超级大图集的DrawCall消耗或许顶的上十几个小图集的消耗

    使用

    1.Edit → Project Setting → Editor → Project Settings

    →Sprite Packer

    三种模式

    Disabled表示不启用它,

    Enabled For Builds 表示只有打包的时候才会启用它,

    Always Enabled 表示永远启用它。

    设置Always Enabled

    2.在Assets下的Images文件夹建立一个图片文件夹test,将集中到图集的图片放置到此文件夹中

    3.右键—>Create–>Sprite Atlas,命名为test

    4.选择Buttons图集,在Objects for Packing中选择图片文件夹test

    点击Pack Previes,图集建立完成。

    参考资料

    【内存优化】图集整理策略

    Unity SpriteAtlas的学习

    Unity图集的创建与简单的使用(上)

    展开全文
  • 图集的意义 使用图集可以说是多加了一个步骤 但是这个步骤不是没有意义的 他可以有效的减少drawcall的数量, 多张图片需要多个drawcall,而如果我们合成一个大图 只需要一个drawcall 并且可以减少内存的开销 图集的...

    图集的意义

    使用图集可以说是多加了一个步骤 但是这个步骤不是没有意义的
    他可以有效的减少drawcall的数量,
    多张图片需要多个drawcall,而如果我们合成一个大图 只需要一个drawcall

    并且可以减少内存的开销

    图集的使用

    然后就到了图集的使用上了

    首先创建一个图集
    在这里插入图片描述
    然后我们将想要设置的文件夹或者是文件 赋值上去

    在这里插入图片描述
    这里可能会产生报错 如果报错 我们需要设置一下
    在这里插入图片描述
    这样报错就消失了 按钮也可以点击了

    然后就要通过代码来给我们想要设置的赋值了

     public static Sprite GetAtlasSprite(string AtlasName,string SpriteName)
        {
            SpriteAtlas atlas = Resources.Load<SpriteAtlas>(AtlasName);
            if (atlas == null)
            {
                Debug.LogError("图集:" + AtlasName + "不存在,请检查!");
            }
            if (atlas.GetSprite(SpriteName))
            {
                Debug.LogError(AtlasName+" 图集中sprite" + SpriteName + "不存在,请检查!");
            }
            return atlas.GetSprite(SpriteName);
        } 
    

    上边我写了一个万能的方法 然后我们就可以使用了

    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    using UnityEngine.UI;
    
    public class TestAtlas : MonoBehaviour
    {
        private Image _image;
    
        private void Awake()
        {
            _image = transform.GetComponent<Image>();
        }
        private void Start()
        {
            _image.sprite = GetSprite.GetAtlasSprite("Test", "10-Victory-2");
        }
    }
    
    

    使用的前提是这个图集放于Resources文件夹中

    如果出现读取图片的时候 我们发现把相邻图片的边边角角包括进来了
    只需要将图集的Tight Packing取消勾选即可

    以上就是这篇博文所有的内容 希望对大家有所帮助

    展开全文
  • Unity图集相关问题

    2021-03-29 22:53:58
    Unity图集Include In Build问题 前言 最近查找图集相关资料的时候看到了Unity论坛上的一篇帖子,其中Unity官方技术人员解释了“Include In Build”究竟有什么作用。 Include In Build 简而言之,如果勾选了,就意味...

    Unity图集相关问题


    前言

    最近查找图集相关资料的时候看到了Unity论坛上的一篇帖子,其中Unity官方技术人员解释了“Include In Build”究竟有什么作用。


    Include In Build

    简而言之,如果勾选了,就意味着Sprite直接引用SpriteAtlas;如果不勾选,就意味着Sprite没有直接引用SpriteAtlas。

    也就是说,我们可以理解为“Include In Build”就是是否存储sprite和图集的引用关系。

    当勾选的时候,Unity保证了使用者在任何时候都无需关注图集(不确定图集会不会被打进底包,官方没有细说,应该需要去找Unity源码才行)。当在运行时使用sprite的时候,Unity会自动进行图集管理。使用者无需手动加载图集。

    当取消勾选的时候,使用者就需要使用Late-binding(后绑定)来加载图集。


    问题

    如果勾选了Include In Build,图集又打了单独的AB包。那么只要当图集AB包加载到内存中后,无需进行后绑定,即可正常显示sprite。

    但根据不加载图集AB包,图片就无法正常显示的现象来看,我们可以进行一波推断。

    对于既勾选了Include In Build,又打了图集AB包的情况,Unity虽然记录了sprite和图集的引用关系,但应该不会对图集进行任何管理了。所以说不想进行后绑定,又想对图集进行热更新,可以尝试开启Include In Build,并保证图集的AB包加载到内存中。

    之前也怀疑过是不是这个版本Unity的Bug,所以上述问题的最终原因还需要查看Unity源码才能知道(埋一个坑,以后再说)。


    Late-binding

    所谓后绑定,就是Unity在加载资源时,对于引用到的sprite,Unity由于不知道sprite和图集的引用关系,所以会发送一个请求加载这个sprite的事件。作为使用者需要接收这个事件(即SpriteAtlasManager.atlasRequested回调),然后把这个sprite的图集返回给Unity。这也就意味着,使用者需要自己加载图集。

    具体实现好像还有很多坑,因为没有淌坑,所以这里就不多说了。


    platformSettings

    对应图集Override部分,如果存在则说明有针对某平台的重写设置。

    platformSettings:
    - serializedVersion: 2
      m_BuildTarget: Standalone
      m_MaxTextureSize: 2048
      m_ResizeAlgorithm: 0
      m_TextureFormat: 47
      m_TextureCompression: 2
      m_CompressionQuality: 50
      m_CrunchedCompression: 0
      m_AllowsAlphaSplitting: 0
      m_Overridden: 1
      m_AndroidETC2FallbackOverride: 0
    - serializedVersion: 2
      m_BuildTarget: Android
      m_MaxTextureSize: 1024
      m_ResizeAlgorithm: 0
      m_TextureFormat: 47
      m_TextureCompression: 1
      m_CompressionQuality: 50
      m_CrunchedCompression: 0
      m_AllowsAlphaSplitting: 0
      m_Overridden: 1
      m_AndroidETC2FallbackOverride: 0
    

    totalSpriteSurfaceArea

    没有查到具体含义,搜索引擎上相关信息太少。

    有时候有值,有时候又是0。目前不知道具体原因和细节。

    totalSpriteSurfaceArea: 17843
    

    storedHash

    storedHash表示Library\AtlasCache文件夹中可用的当前spriteatlas缓存的哈希。当生成的图集和缓存的图集资源一样、Pack平台一样(SpriteAtlasUtility.PackAllAtlases)、设置一样时,Unity通过缓存快速生成图集(确实非常快),并且将storedHash标记为缓存的哈希值。当不存在图集缓存信息的时候,storedHash为00000000000000000000000000000000。

    有人说这个storedHash会经常变,反正我测试了,只要上述条件不变,storedHash就不会变。具体可以参考这个

    (storedHash在2019的某个版本好像被去掉了,就是因为用户反馈老变,不好做版本控制。)

    storedHash: 
      serializedVersion: 2
      Hash: 31ee8620a8a14d495f31dc7bae9d896e
    

    另:batchmode

    Unity在batchmode中切换了平台后,不会立即生效。所以对于UNITY_ANDROID、UNITY_IOS这类的宏,很有可能判断不到,写代码的时候需要注意一下。(坑!)

    解决方法,可以将宏判断改为传参,通过不同参数来运行不同逻辑。


    后记

    这个学习记录实际上是由上一篇图集引用问题引出来的。总之,学就完事了。

    (不好看源码,又想稍微了解一下Unity引擎底层,上Unity官方论坛!)


    展开全文
  • 利用TexturePacker打包图集,这个压缩包里有TexturePacker的安装文件和实例demo,可以帮您试下一键打包图集
  • Unity图集的创建与简单的使用(上)

    千次阅读 2019-10-03 23:37:03
    前言:在Unity的开发中,涉及到UI的开发经常会调用工程中的图片。如果单独使用每个图片会极大的损耗内存,这就涉及到图集的使用。...(1)、在使用图集前需要对Unity工程进行设置,步骤如图所示: ...
  • unity自身的Sprite Atlas介绍 Sprite Atlas的主要有以下三个功能: 1.创建、编辑图集以及设定图集参数 2.添加图集Variant(变种) 3.运行时访问图集 通过图中红点标注的地方,可以添加你想...Unity图集可以说功能
  • 前言:在上次的博客中写了怎么创建图集,今天在这篇博客中记录下图集是怎么调用的。 (1)、在场景中创建一个UGUI的Image组件,如图所示: ...using UnityEditor; using UnityEngine; using Un...
  • Unity使用TexturePacker一键打包图集工具源代码 根据项目资源结构自动按文件划分图集,实现一键打包图集
  • unity中,带有透明通道的图片压缩后,会出现一定的质量的下降,并且带有透明通道的图片占用内存较大。我们可以将RGBA图分离成一张ETC压缩的RGB图和一张alpha图,在用shader合并,这样大小可以减少一半。 注意:...
  • 图集打包工具。实测Unity版本:4.6.8。NGUI版本:3.7.5。 默认三种打包方式。PC端的格式为ARGB32。安卓端的格式为ETC2_RGBA8,IOS端的格式为PVRTC_RGBA4。 欢迎提意见。小弟会及时修改上传。也希望各位路过的大牛...
  • Unity图集切割

    2021-06-11 11:18:34
    unity中导入一张图,把图片改为2DUI,并且把相关的设置为下图 然后Apply后点击Sprite Editor 会找到裁剪出来的单一图片
  • Unity图集打包文件-TexturePacker
  • TextureImporterFormat iphoneTextureFormat = UnityEditor.TextureImporterFormat.PVRTC_RGBA4; bool isIphoneOverWrite = textureImporter.GetPlatformTextureSettings( "iPhone" , out ...
  • Unity图集、Image和SpriteRenderer 前言 最近好久没有写技术笔记了,今天继续回归日常学习的状态。 图集Tight Packing Unity提供的SpriteAtlas有一个Tight Packing选项。这个选项勾选之后,图片就会按照它的Sprite...
  • 个人unity图集学习

    2020-12-03 17:23:58
    Unity图集相关信息,比较零散,先记录: 1.【unity游戏开发】图集整理策略 https://zhuanlan.zhihu.com/p/90494264 2.unity性能优化之图集打包——Sprite packer 和 Sprite Atlas 使用总结 ...
  • Unity图集更新和svn提交

    千次阅读 2014-06-06 14:26:26
    图集本身包括3个文件: .prefab z .mat
  • Unity图集分割

    2019-10-01 23:18:53
    using System.IO;using UnityEngine;using UnityEditor; public class TestSaveSprite{ [MenuItem("LLWH/SpriteSplit")] public static void SpriteSlice() { Texture2D image = Sele...
  • Unity使用图集

    2020-09-28 15:02:00
    步骤 设置开启如图: 鼠标右键创建Sprite Altas。 把要合并的图拖拽到Altas的Objects for Packing下面。 运行游戏,查看开启后相关属性是否有变化产生如图: ...
  • Unity处理图集

    2020-02-24 16:32:57
    1、发现有的资源是一群图片在一个图片上的图集,需要将其一个个裁剪下来 一、参考: 1、总结:借鉴了,可以继续看下面我的过程 一、过程: 1、导入图片,进行基本图片设置 1、直接进行裁剪 1、点击Applay,...
  • Unity图集打包

    2018-02-03 19:12:00
    http://www.xuanyusong.com/archives/3304 http://www.xuanyusong.com/archives/3315 http://www.xuanyusong.com/archives/3499 http://www.xuanyusong.com/archives/3768 ...
  • 在main函数里直接赋值文件夹(会递归文件夹内的所有文件夹),在每个子文件夹内会自动切分unity3d atlas图集。但是目录下需要有prefab png文件。
  • Unity性能优化之 - 图集

    千次阅读 2019-12-19 15:24:57
    版权声明:本文为CSDN博主「X Y126」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。 原文链接:... ... 制作图集的好处: 众所周知CPU是用来...
  • 开始制作之前,先说一下制作图集的优点:减少draw call,提高处理效率,减少内存。 首先点击NGUI->Open->Atlas Maker,打开此界面: 然后点击new按钮,之后点击相应的图片即可添加,添加好后,点击create,...
  • unity图集原理记录

    2021-02-07 09:59:02
    先记录一下 日后更新 原理
  • Unity2018 图集的使用

    2020-05-14 13:46:55
    使用图集的好处是降低DrawCall,如果不将UI图片合并到一个图集中,每个图片都将占用一个DrawCall。 untiy2018提供了创建SpriteAtlas的功能,相较于...Unity默认提供了图集的Include in build功能,就是在项目构建时默
  • unity图集切割

    2021-06-03 23:04:09
    图集切割是可以在unity中更加方便的切割图片,比用PS p图方便一些 首先在unity中导入一张图,把图片改为2DUI,并且把相关的设置为下图 然后Apply后点击Sprite Editor 选取想要裁剪目标,然后apply,没有的话关闭...
  • Unity拆分图集为散图

    千次阅读 2019-09-26 20:10:57
    有时候需要充旧项目里面 找一些资源给美术用,旧项目里面是已经打好的图集,又找不到源文件,就需要一个拆分图集的工具 欢迎大佬 指点

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,594
精华内容 1,837
关键字:

unity图集