Unity Sprite Altas「建议收藏」

Unity Sprite Altas「建议收藏」SpriteAtlas(精灵图集)SpriteAtlas针对现有的图集打包系统SpritePacker在性能和易用性上的不足,进行了全面改善。除此之外,相比SpritePacker,SpriteAtlas将对精灵更多的控制权交还给用户。由用户来掌控图集的打包过程以及加载时机,更加利于对系统性能的控制。SpriteAtlas的主要有以下三个功能:1.创建、编辑图集以及设定图集参数2.添加图集Variant(变种)3.运行时访问图集下面将通过具体案例来分别展示以上三个功能。创建

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

Sprite Atlas(精灵图集)
Sprite Atlas 针对现有的图集打包系统Sprite Packer在性能和易用性上的不足,进行了全面改善。除此之外,相比Sprite Packer,Sprite Atlas将对精灵更多的控制权交还给用户。由用户来掌控图集的打包过程以及加载时机,更加利于对系统性能的控制。
Sprite Atlas的主要有以下三个功能:
1.创建、编辑图集以及设定图集参数

2.添加图集Variant(变种)

3.运行时访问图集

下面将通过具体案例来分别展示以上三个功能。

创建、编辑图集及参数设定
在Unity 2017.1中,SpriteAtlas是一种资源,可以像其它资源一样在Unity中创建,例如预制件、场景等。

可以在检视窗口中设定要打包的精灵及其参数,例如图集的打包方式、输出贴图的压缩格式等。如下图所示,SpriteAtlas就是一个创建好的图集。

P.S.这里可以支持多种类型,包括单个Sprite、Sliced Sprite、文件夹,以及这些类型的任意组合。

操作更加方便,对用户更友好。可以将文件夹,纹理或精灵分配给Sprite Atlas。可以将整个文件夹分配给Sprite Atlas资产,该文件夹中的所有纹理(包括子文件夹)都将被打包。不考虑相同纹理内的其他精灵。

Unity Sprite Altas「建议收藏」

此外,在检视窗口上还可以看到图集的一些参数设定,例如:打包时是否支持精灵旋转(Allow Rotation)、贴图的采样模式(Filter Mode)、压缩方式(Compression)等等。
在最下方的预览窗口中,可以查看图集的生成效果。这样就可以很清楚的知道图集的打包方式是否合理,是否存在大量被浪费的空间。

添加图集Variant(变种)
所谓Variant,就是指原有图集的一个变种。它会复制原有图集的贴图,并根据一个比例系数来调整复制贴图的大小。

这样的Variant通常用于为高分辨率和低分辨率的屏幕准备不同的图集。

因为如果只准备一套高分辨率的图集,在低分辨率的设备上占用内存过多。反之,如果只准备一套低分辨率图集,在高分辨率的设备上就会模糊。

通过Atlas Variant就可以很方便地解决该问题。如下图所示,SpriteAtlas 1.spriteatlas是新建的一个低清图集,在检视窗口中将Type设为Variant,Master Atlas设为SpriteAtlas。这里为了与原图进行更明显的对比,将Scale设为0.1, 点击Pack Preview。

Unity Sprite Altas「建议收藏」

运行时访问图集
Sprite Atlas作为一种资源开放给用户,支持在脚本中直接访问,还可以通过名字获取图集中的精灵

这样做的好处是,让用户可以更加直接地随时编辑图集,而且不用去单独加载图集中的每个精灵。

下面是一段动态换装的代码,该脚本通过LoadAsset加载SpriteAtlas类型的资源,再通过SpriteAtlas的GetSprite接口获取图集中的精灵,最后将精灵传递给SpriteRenderer。相较于基于Sprite Packer的实现,整个过程要简单直接的多。

 

 

Jetbrains全家桶1年46,售后保障稳定

  1. using UnityEditor;

  2. using UnityEngine;

  3. using UnityEngine.U2D;

  4.  
  5. public class SpriteAtlasExample : MonoBehaviour

  6. {

  7. void Start()

  8. {

  9. SpriteAtlas atlas = AssetDatabase.LoadAssetAtPath<SpriteAtlas>("Assets/SpriteAtlas/SpriteAtlas.spriteatlas");

  10. Sprite sprite = atlas.GetSprite("111");

  11. if(sprite != null)

  12. {

  13. GetComponent<SpriteRenderer>().sprite = sprite;

  14. }

  15. }

  16.  
  17. }

创建方式
Assets>Create>Sprite Atlas

官方文档参考
https://docs.unity3d.com/Manual/SpriteAtlas.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/206297.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Pycharm调试_pycharm 远程调试

    Pycharm调试_pycharm 远程调试动机一些bug由于本地环境和线上环境的不一致可能导致本地无法复现本地依赖和线上依赖版本不一致也可以导致一些问题有时一些bug跟数据相关,本地数据无法和线上数据一致有些三方平台会验证服务器的合法性或者异步回调结果,如微信支付,这时候本地无法测试如上所诉,要是有一个很方便调试远程服务器的方法,岂不美哉。通过PyCharm我们可以很方便地实现远程调试,下面详细介绍下PyCharm这个牛叉的功能。添加远程…

    2025年7月1日
    4
  • C# 通过 HtmlDocument 操作HTML节点

    C# 通过 HtmlDocument 操作HTML节点C#通过HtmlDocument操作HTML节点时,会发生不停地刷新的情况,在对html文档操作后加以判断即可解决这种问题。   PublicSubsetMainUlr(ByValWebBrowser1AsWebBrowser)           DimpElemAsHtmlElement=Nothing           即时信息页面          

    2022年7月19日
    15
  • ANSI编码对照表「建议收藏」

    ANSI编码对照表「建议收藏」目前计算机中用得最广泛的字符集及其编码,是由美国国家标准局(ANSI)制定的ASCII码(AmericanStandardCodeforInformationInterchange,美国标准信息交换码),它已被国际标准化组织(ISO)定为国际标准,称为ISO646标准。适用于所有拉丁文字字母,ASCII码有7位码和8位码两种形式。因为1位二进制数可以表示(21=)2种状态:0、1;而2位二进制数可以表示(22)=4种状态:00、01、10、11;依次类推,7位二进制数可以表示(27=)128种

    2022年9月23日
    5
  • Spring整合Hibernate的步骤

    Spring整合Hibernate的步骤

    2021年12月6日
    41
  • java getclassloader_Java Class getClassLoader()方法[通俗易懂]

    java getclassloader_Java Class getClassLoader()方法[通俗易懂]JavaClassgetClassLoader()方法java.lang.Class.getClassLoader()方法返回的类加载器的类。一些实现可能使用null表示引导类加载器。如果这个类是由引导类加载器加载的方法在这样的实现将返回null。1语法publicClassLoadergetClassLoader()2参数无3返回值此方法返回加载此对象所表示的类或接口的类加载器。…

    2022年6月11日
    36
  • java单例模式 三种_三种java单例模式概述

    java单例模式 三种_三种java单例模式概述在java语言的应用程序中,一个类Class只有一个实例存在,这是由java单例模式实现的。Java单例模式是一种常用的软件设计模式,java单例模式分三种:懒汉式单例、饿汉式单例、登记式单例三种。下面就来介绍一下这三种java单例模式的相关内容。java单例模式是一种常见的设计模式,在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中,应用该模式的类一个类只有一个实例,这也是…

    2022年7月25日
    8

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号