zoukankan      html  css  js  c++  java
  • Unity2017新功能Sprite Atlas详解

    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资产,该文件夹中的所有纹理(包括子文件夹)都将被打包。不考虑相同纹理内的其他精灵。

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

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

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

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

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

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

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

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

     

    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

  • 相关阅读:
    五十七、linux 编程——UDP 编程 域名解析
    浅谈数学建模
    数值分析实验之线性方程组的迭代求解(MATLAB实现)
    数值分析实验之线性方程组的迭代求解(Python实现)
    数值分析实验之线性方程组的迭代求解(java实现)
    数值分析实验之最小二乘拟合 含有噪声扰动(MATLAB实现)
    数值分析实验之最小二乘拟合 含有噪声扰动(python实现)
    数值计算方法实验之newton多项式插值 (Python 代码)
    数值计算方法实验之Hermite 多项式插值 (Python 代码)
    数值计算方法实验之按照按三弯矩方程及追赶法的三次样条插值 (MATLAB 代码)
  • 原文地址:https://www.cnblogs.com/mcyushao/p/9670903.html
Copyright © 2011-2022 走看看