首页 > 其他分享 >【Unity插件】NGUI核心组件之UIAtlas

【Unity插件】NGUI核心组件之UIAtlas

时间:2022-11-29 21:35:00浏览次数:53  
标签:贴图 插件 UIAtlas sprite texture Unity 使用 atlas NGUI


NGUI:UIAtlas

UIAtlas是一个容器,他包含了许多sprite的坐标信息。如果你对这个概念不是很熟悉,你可以这样理解:与使用很多小的贴图来渲染UI相比,使用一张包含了所有小贴图的大贴图的效率要高许多。这些小的贴图就被叫做sprite,这个大的贴图就被叫做atlas。

在使用NGUI渲染任何东西之前,首先需要创建一个atlas(或者使用一个现成的)。如果你是一个美术,那你可能已经熟悉了相关的流程。如果没有,你可以直接使用NGUI内置的Atlas Maker工具。

当然,你可以在任何地方使用UITexture,但是这个做的效率不是很高。

最后还是看你自己。

参数

Material 指向当前atals正在使用的材质。在材质中最好使用NGUI提供的一些unlit shader,例如Unlit-Transparent Colored

TP Import 让你可以导入完整的使用texture packer程序制作的sprite定义表。只需要把导出来的txt文件拖动进去,所有的sprite会自动导入。如果你使用内置的atlas maker来创建atlas,你可以放心的忽略这个参数

New Sprite 按钮让你可以创建一个新的sprite。它会自动克隆当前选中的sprite的所有参数

Delete 按钮让你删除一个不再使用的sprite。会弹出一个确认框

Sprite 下拉列表让你选择当前需要的sprite

Edit Name 区域让你可以将sprite重命名

Dimensions 是用来标示你的sprite的起始位置和大小

Border 允许你标示sprite的哪一部分不能被缩放,或者只能在一个方向缩放。Sliced sprite会使用这个参数

Padding 是4个边缘的边框宽度。可以用来调整中心点位置,同时在对sprite进行微调的时候也非常重要

Show 区域让你测试你的sprite和它在atlas中的位置

提示

1. 你可以使用多个atlas来对sprite进行分组。只要atlas使用的是同一个材质,他们就只需要消耗一个draw call

2. 为了最好的结果,材质使用的贴图的混合模式最好选择Clamp,并且格式选择Truecolor

3. 将相似的texture组合在一起组成一个atlas是一个不错的选择, 但是最好将同时使用的atlas的数量降低到最小

4. 如果你使用texture packer创建atlas,在导出的时候选择Unity3D

5. 如果你使用photoshop来创建atlas,你可以使用selection工具和信息版来确认sprite的位置和大小

标签:贴图,插件,UIAtlas,sprite,texture,Unity,使用,atlas,NGUI
From: https://blog.51cto.com/u_6871414/5897092

相关文章

  • Unity游戏的GC(garbage collection)优化
     Unity版本:5.5引言游戏运行时使用内存来存储数据,当这些数据不再被使用时,存储这些数据的内存被释放以便于之后这些内存可以被复用。垃圾(Garbage)是存储无用数据的内存的术语......
  • 编译Keepass 插件IIME 记录
    Keepass自动输入时,输入法总是冒出来。安装插件实现输入前自动切换为英文,自动输入完成后恢复为中文下载插件源码gitclonehttps://github.com/iuuniang/IIME.git编译......
  • vscode 按 tab 自动补全 vue 插件
    1.在vscode中搜索 HTMLSnippets,并安装2  3  4.在配置项中复制粘贴下面的代码"files.associations":{"*.vue":"html"},"emmet.......
  • Unity--Cinemachine官方实例详解
    1.2DCamera搭建一个快速场景,MainCamera选择Orthographic。在Cinemachine下有Create2DCamera,在生成的相机中设置follow,同时注意body的设置,如下图所示在虚拟相机中还需要......
  • Unity Animator -- Apply Root Motion
    Animator.ApplyRootMotion这个属性是用来控制物体在播放骨骼动画的时候是否应用骨骼根节点的运动参数。一、当没有骨骼根节点的情况时,比如只是一个Cube立方体,如果勾选了Appl......
  • 【详细解析版】Unity UGUI Mask组件实现原理
    MaskingisimplementedusingthestencilbufferoftheGPU.即Mask是利用了GPU的模板缓冲来实现的,关于模板,打个简单的比方,就像一个面具,可以挡住一部分“脸”的显示一样。......
  • Unity-利用SkinnedMeshRenderer和Mesh的BindPose实现骨骼动画
    SkinnedMeshRenderer蒙皮网格渲染器。蒙皮是指将Mesh中的顶点附着(绑定)在骨骼之上,而且每个顶点可以被多个骨骼所控制。骨骼是皮肤网格内的不可见对象,它们影响动画过程中网格......
  • Unity判断对象是否在视野内
    判断对象是否在视野内,有两种方式:第一种:不设置固定的目标,使用LayerMask,设置寻找对象的Layer,使用Physics.OverlapSphere方法,以给定的位置为圆心,按照设定距离投射一个球体,返回......
  • Unity--Physics.OverlapSphere的参数LayerMask和GameObject的layer
    Layer介绍:Unity中是用int32来表示32个Layer层。int32表示二进制一共有32位(0—31)在Unity中每个GameObject都有Layer属性,默认的Layer都是Default。在Unity中可编辑的Layer共......
  • Unity-Animator Override Controller
    AnimatorOverrideController是一种资产类型,允许您扩展现有的AnimatorController,替换使用的特定动画,但保留原始结构,参数和逻辑。允许您创建相同基本状态机的多个变体,但每......