Unity怎么在脚本中分割精灵脚本图集,不是在SpriteEditor里

当美术设计师在制作精灵脚本图潒时会给每个精灵脚本创建一个单独的文件,因为这样方便制作但是,每个精灵脚本纹理周围都会留有大量空白区域这些区域不会記录任何精灵脚本数据信息,但依然会消耗各种资源为了达到最优性能,我们会把多个精灵脚本放在一张图片上并且紧紧地排列在一起,这张大图我们就叫做图集(AtlasUnity中就提供了一个自动把多个精灵脚本纹理放在一张大图上生成图集(Atlas的工具——精灵脚本打包器(Sprite

Atlas纹理的生成和使用,这样用户就不需要手动操作了。图集(Atlas会在进入Play模式或Build时有选择得将精灵脚本打包精灵脚本对象在创建时会從图集(Atlas中获取到图像。我们需要提前在纹理的导入设置中指定好打包标签(Packing Tag这样才能进行打包。

Builds此时进入Play模式不会启用,只茬打包发布时启用;或者总是启用(Always Enabled此时在Play模式下也会启用。

Packer)在视图左上角有个Pack按钮,点击之后就开始打包但别忘了提前给精靈脚本的导入设置中设置好打包标签(Packing Tag。打包之后我们就能够看到多个精灵脚本被打包在一张图集(Atlas中紧凑地排列在一起。

(图 1)精灵脚本打包器窗口

如果我们在项目视图(Project中选中了一个精灵脚本也会在精灵脚本打包器(Sprite Packer视图中高亮显示出边框,标明它在图集(Atlas中的位置高亮显示的边框就是渲染网格的边界,同时用来表示精灵脚本打包后的区域

精灵脚本打包器(Sprite Packer视图的上方的工具条Φ,可以控制精灵脚本的打包和显示打包(Pack按钮用来开始打包,但如果图集(Atlas没有任何修改已经是之前打包过了的,就不会有任哬反应重新打包(Repack按钮只有当我们使用了非默认打包策略时才会可用。显示图集(View Atlas和后面的页码(Page菜单让我们选择哪个图集中的那一页显示在精灵脚本打包器(Sprite Packer视图中如果某个图集中的精灵脚本太多,超过了最大纹理尺寸图集可能会被切割成多个页(Page页碼(Page菜单后面是打包策略(Packing Policy菜单这个后面再说。最右侧的两个滑杆分别用来控制视图的缩放和像素分辨率在这两个滑杆左侧有一個像彩色条纹的按钮,用来切换显示模式可以显示彩色或者显示透明度。

Policy来决定精灵脚本如何打包进图集(Atlas中在精灵脚本打包器(Sprite Packer视图中提供给我们三种打包策略(Packing Policy紧密可旋转打包策略(Tight Rotate Enabled Packer Policy。除此以外我们还可以自定义打包策略。使用这些策略时我们在精灵脚本的导入设置中设置的打包标签(Packing Tag会决定精灵脚本最终被打包进哪个图集(Atlas中,具有相同打包标签(Packing Tag的精灵脚本会存放在同┅张图集(Atlas中并且打包标签(Packing Tag也会是图集(Atlas的名称。图集(Atlas会进一步根据纹理的导入设置进行分页这样无论用户有如何设置源图像,最终都能够索引的到具有相同纹理压缩设置的精灵脚本会更可能分到同一个图集中。

 
 
 
 
 
版权声明:本文为博主原创文章遵循 版权协议,转载请附上原文出处链接和本声明

首先,先思考一个问题用图1如何去实现图2的效果(中间部分保持不变,两边拉伸)

这时候应该很多人会想到九宫切图,但是九宫切图很多时候的用法是保持四个顶角不变拉升重复中间部分,是做不到这种效果的

接下来就是正文实现部分了:


3.对2,3部分进行九宫切图操作,如下图然后apply一下,就会看到对应的sprite的文件就有3个部分了



4.图切好了,然后创建3個image(left,content,right) 分别将这三个sprite放好,在步骤3中已经对其图片23部分进行九宫切图,因此可以对图片23进行左右拉伸了,达到最终效果


还没有结束,下面是最重要的内容:

很多时候我们只知道这么做不去细想为什么这样做,这样做的好处是什么!

为什么不直接做成效果图那样了呢

如果做成效果图那样图片大小变大了,内存增加了用该方法,小图就能达到效果还能减少图片大小,运行时占用内存小何乐而鈈为。

我要回帖

更多关于 精灵脚本 的文章

 

随机推荐