Sprite (2D and UI)

2024-05-03 21:32
文章标签 ui 2d sprite

本文主要是介绍Sprite (2D and UI),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

孙广东  2015.7.8

在将图片导入Unity后 做的一些设置经常会得到警告信息。所以要了解一下这些设置。

D:\Program Files\Unity5\Editor\Data\Documentation\en\Manual\class-TextureImporter.html

Sprite (2D and UI)
选择导入到Unity中的Texture纹理。在Inspector面板上显示的要进行设置的 ImportSetting选项。
如果你的纹理将在2D游戏(或者UGUI界面)中使用作为一个Sprite,这必须选择此项。

图片:

属性:                            功能:
Sprite mode      选择sprite 图形将如何从image中提取出来。
 Single       sprite图像将被用于单独的一个【就是一张image原始图片只对应一个sprite】。之前测试了一下,如果要在Sprite Packer窗口中看到要打到执行包的所有精灵,必须是Single的。
 Multiple      多个相关精灵(例如,动画帧的连续图片或一个单一的游戏角色身上的各个组成部分)一起将保持在相同的image中【就是一张image原始图片对应多个sprite精灵】。如果选择此项,我们在得到资源后,需要 在点击”Sprite Editor“选项进行每个小精灵的提取(提取方式又有两种这里就不说了)
Packing Tag   当前纹理要被打进的图集包的名称【打包图集应该对NGUI很熟悉吧】。
Pixels To Units  在sprite图像的宽度/高度的像素数量,它将对应于世界空间中的一个距离单位。???
Pivot   图片上的一个点,在sprite的本地坐标系中(center【默认】, top-left等)。对UGUI很多时候更多是默认的center,还有就是RectTransform组件的弹窗显示,还有的时候比如要设置旋转中心点,比较特殊,我们就要Custom这个操作可以在Scene中直接调整。
Generate Mip Maps  生成Mip Maps【作用:】有个时候选择了会提示”Only POT texture can be compressed if mip-maps are enabled“ 这是因为图片必须要采用2的幂次方大小才能使用该格式。很多时候也会因为Mip Maps占用多余的内容所以不选择它
Filter Mode    选择当它获取伸展时纹理怎么样被过滤,通过转换:
 Point     纹理在近距离变成块状blocky
 Bilinear    纹理在近距离变模糊blurry 【默认选项】
 Trilinear    像Bilinear,但纹理在不同的mip级别之间也模糊了
 
 
Per-Platform Overrides:


Import Details:
Supported Formats:
Texture Sizes:
Mip Maps:


Unity5中如何减少资源的大小:

D:\Program Files\Unity5\Editor\Data\Documentation\en\Manual\ReducingFilesize.html

现在更关心我 美术的图片资源的设置,因为是2D的休闲游戏。


减小大小的第一步是确定哪些资产消耗最大,因为这些资产都是优化的重点。你可以发现这些信息从Editor Log, 在执行build后 (从Console窗口的小型面板上方菜单中选择Open Editor Log的)。

图片:

该日志提供资产类别分列的摘要,然后列出所有的个人资产消耗大小的顺序。通常情况下,像textures, music and videos的东西将会占据了大多数存储而scripts, levels and shaders往往可以忽略不计。请注意,在摘要中提到的File Headers不在自己的资产。headers实际是额外的数据被添加到“raw”资产文件来存储引用和设置。

log可以帮助您确定您可能希望删除或优化的资产,但是之前您应该考虑以下设置工作:


Unity重新编码导入的资源为其自身内部的格式,所以源资产类型的选择是不相关。例如,如果您有多层 Photoshop 纹理在项目中在building前它将夷为平地和压缩。【注意】将纹理作为 PNG 导出文件不会作出任何差异build size,所以你应该坚持的是在开发过程中对您最方便的格式。


Unity strips带从未使用的资产在build期间,所以你不用通过手动从项目中删除资产获得任何东西。唯一不会被删除的资产是脚本 (因为通常非常小) 和资产Resources文件夹中的 (由于Unity不能确定哪一种被使用哪一种没被使用)。为此,应确保这个game真的需要资源文件夹中的资产。您可能能够在Resources中资产替换为AssetBundles来动态加载的资产,从而减少player大小。

减少Build Size建议:
Textures纹理

build中纹理经常占用最多空间。首先要做是使用compressed压缩的纹理格式 (DXT(Desktop platforms) 或 PVRTC)。

试着减少的纹理大小。这里的窍门是,你不需要修改实际的源内容。只需在Project视图中选择纹理并在Import Settings中设置Max Size。它是一个好的主意来缩放对象使用的纹理,然后调整的Max Size,直到它开始看起来在场景视图中更糟。


图片:

Changing the Maximum Texture Size will not affect your texture asset, just its resolution in the game
更改纹理的Maximum大小不会影响你的纹理资产,只是更改了其在游戏里的分辨率
下表显示图像格式占用多少存储空间,以字节为单位,每个像素:
表格:

CompressionMemory consumption (bytes/pixel)
Standalone
RGB Compressed DXT10.5 bpp
RGBA Compressed DXT51 bpp
RGB 16bit2 bpp
RGB 24bit3 bpp
Alpha 8bit1 bpp
RGBA 16bit2 bpp
RGBA 32bit4 bpp
iOS
RGB Compressed PVRTC 2 bits0.25 bpp (bytes/pixel)
RGBA Compressed PVRTC 2 bits0.25 bpp
RGB Compressed PVRTC 4 bits0.5 bpp
RGBA Compressed PVRTC 4 bits0.5 bpp
RGB 16bit2 bpp
RGB 24bit3 bpp
Alpha 8bit1 bpp
RGBA 16bit2 bpp
RGBA 32bit4 bpp
Android
RGB Compressed DXT10.5 bpp (bytes/pixel)
RGBA Compressed DXT51 bpp
RGB Compressed ETC10.5 bpp
RGB Compressed PVRTC 2 bits0.25 bpp (bytes/pixel)
RGBA Compressed PVRTC 2 bits0.25 bpp
RGB Compressed PVRTC 4 bits0.5 bpp
RGBA Compressed PVRTC 4 bits0.5 bpp
RGB 16bit2 bpp
RGB 24bit3 bpp
Alpha 8bit1 bpp
RGBA 16bit2 bpp
RGBA 32bit4 bpp


总图像存储大小的公式是 = width * height * bpp。如果您正在使用 mipmap 存储将超出单个图像大约三分之一。


默认情况下Unity导入时压缩所有纹理。为了在编辑器中更快的工作流,您可以根据喜好关闭压缩,但在Build时所有纹理都压缩,无论如何设置。


【重申】Unity总是后处理导入的文件,因此,在编辑器中导入多层的PSD文件将被自动转换为JPG,在编辑器文件大小方面没有任何的区别,保存文件为源格式(例如.mb文件、 .psd文件、.tiff文件)将使得工作更加简单。











这篇关于Sprite (2D and UI)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/957689

相关文章

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

Golang GUI入门——andlabs ui

官方不提供gui标准库,只好寻求第三方库。 https://github.com/google/gxui 这个gui库是谷歌内部人员提供的,并不是谷歌官方出品,现在停止维护,只好作罢。 第三方gui库 找了好多,也比较了好多,最终决定使用的是还是 https://github.com/andlabs/ui 相信golang gui还会发展的更好,期待更优秀的gui库 由于andlabs

Matter.js:Web开发者的2D物理引擎

Matter.js:Web开发者的2D物理引擎 前言 在现代网页开发中,交互性和动态效果是提升用户体验的关键因素。 Matter.js,一个专为网页设计的2D物理引擎,为开发者提供了一种简单而强大的方式,来实现复杂的物理交互效果。 无论是模拟重力、碰撞还是复杂的物体运动,Matter.js 都能轻松应对。 本文将带你深入了解 Matter.js ,并提供实际的代码示例,让你一窥其强大功能

移动UI:分类列表页、筛选页的设计揭秘。

移动UI的列表页设计需要考虑用户体验和界面美观性,以下是一些建议的设计要点: 1. 列表项的展示: 列表页应该清晰地展示各个列表项,包括标题、副标题、缩略图等内容,以便用户快速浏览和识别。可以使用卡片式布局或者简洁的列表布局。 2. 搜索和筛选: 如果列表项较多,应该提供搜索和筛选功能,方便用户查找感兴趣的内容。搜索框和筛选条件可以放置在页面顶部或者底部,以便用户方便操作。

UI自动化测试常见面试题

1、什么是UI自动化测试? UI自动化测试是一种通过模拟用户交互并自动执行UI操作的软件测试方法。它用于验证用户界面的功能和稳定性,以确保在不同的操作系统、浏览器和设备上的一致性。 2、UI自动化测试的优势和劣势是什么? 优势: 可以节省时间和成本,提高测试效率。 可以自动执行大量的重复测试任务,减少人为错误。 可以实现广泛的测试覆盖,包括不同的操作系统、浏览器和设备。 可以提供稳定

Unity3D在2D游戏中获取触屏物体的方法

我们的需求是: 假如屏幕中一个棋盘,每个棋子是button构成的,我们希望手指或者鼠标在哪里,就显示那个位置的button信息。 网上有很多获取触屏物体信息的信息的方法如下面代码所示: Camera cam = Camera.main; // pre-defined...if (touch.phase == TouchPhase.Bagan)){ // 如果触控点状态为按下Ray

element-ui打包之后图标不显示,woff、ttf加载404

1、bug 起因 昨天在 vue 项目中编写 element-ui 的树形结构的表格,发现项目中无法生效,定位问题之后发现项目使用的 element-ui 的版本是 2.4.11 。看了官方最新版本是 2.15.14,然后得知 2.4.11 版本是不支持表格树形结构的。于是决定升级 element-ui 的版本,方便后续的开发。 升级之后本地简单的过了一遍系统功能,并没有发现有什么不妥,于

Unity(2022.3.41LTS) - UI详细介绍- Toggle(切换)

目录 零.简介 一、基本功能 二、属性和设置 三、使用方法 四、优化和注意事项 零.简介 在 Unity 中,Toggle 是一种常用的 UI 组件,用于表示一个布尔值的状态,类似于复选框。 一、基本功能 状态切换:Toggle 有两种状态,即选中和未选中。用户可以通过点击 Toggle 来切换其状态。关联变量:可以将 Toggle 的状态与一个布尔变量关联起来,以便

Figma如何给设计的UI套样机

一、设计自己的UI 首先绘制自己的ui,根据自己的需求绘制: 二、在社区搜索需要适配的样机 1、打开社区网站 Figma社区 2、搜索样机 我们一iPhone 11为例: 3、用Figma打开样机 4、找到Place screen here这儿 三、将自己设计的UI适配过去 将自己的UI复制粘贴到Place screen here这儿就OK。 四、效果查看

UI 自动化技能:20个实战技巧!测试工程师必看!

大家周五 好啊!忙碌了一周,又可以懒洋洋躺在沙发上了~~~ 又到了每年的金九银十了,今天聊聊如何提升UI自动化话题... 你是否在求职过程中感受到UI自动化的技能不足? 随着测试行业的发展,UI自动化测试已成为每位测试工程师的必修课。无论你是想提升现有的测试效率,还是在找工作中获得竞争优势,掌握UI自动化技能都能为你带来巨大的帮助。那么,如何快速提升这些技能呢? UI(用户界面)自