纠正导入设置
在Project视图选择background的父级再次显示导入设置(Import Settings),这次我们看底部的预览图.
这个预览窗口将显示纹理的尺寸,颜色信息和内存使用情况.正如下面截图中所看到的当前纹理大小为1024×320像素,但background.png实际为2048×640像素,这就意味着Unity缩小了50%以适应1024×1024纹理尺寸.

背景纹理默认设置预览
为了解决这个质量问题,在导入设置的底部选择如图所示的最大尺寸和格式设置:

导入设置默认选项卡
最大尺寸(Max Size)定义生成纹理所允许的最大尺寸,它是一个正方形,默认为1024px.同时图像深度默认为压缩的(Compressed).
我们可以为不同目标平台设置不同的值(例如iOS,网上及Android上),但本例中我们只处理默认(Default)选项卡.
在默认(Default)选项卡中,改最大尺寸(Max Size)到2040和点击应用(Apply)按钮.导入设置现在应该是这样的:

马上你就会看到无论是场景视图还是游戏视图,画质都很好.这是因为背景图像用了较少的压缩.下图显示了Game视图:

用了正确设置的游戏视图
在Inspector预览图中我们能看到背景纹理现在占用0.6MB内存,远高于之前的160KB:

增大纹理尺寸导致纹理内存占用增加了4倍(预览图的数字是四舍五入的).
对于一些纹理,我们可能需要单独调整Format值以提高需要的色彩质量,但是这会进一步增大内存占用.例如,如果你尝试改背景格式为16bits,你将看到纹理内存占用增长到2.5MB,改成真色彩(Truecolor)将会占用3.8MB.
但是,你看下面这两个不同版本的背景效果,会发现用Compressed(压缩)设置和Truecolor(真彩色)比起来差不多:

压缩纹理(Compressed)的背景

真彩色(Truecolor)的背景
由于压缩后的背景看起来很不错,同时节省很多内存占用,那么我们就选择压缩格式.现在背景和相机设置看起来都没问题了,我们需要找到 old lady和cat.
控制绘图顺序(Controlling Draw Order)
因为cat和enemy被绘制在了背景后面,所以我们看不到它们.可以调整游戏对象Z轴的位置,使对象靠近相机,我觉得这是一个非常好的方式,然而Unity现在支持图层排序(Sorting Layers),更适合处理这个问题.
在Hierarchy视图选择cat,把精灵渲染器的层排序(Sorting Layer)设置为Default,如下图:

点击Sorting Layer下拉框,你项目所有层都将呈现在这里,现在只有默认定义的Default层.

可以看到有”Add Sorting Layer…. “选项,点击+号,我们创建一个新的排序图层,命名为cat,同样的再创建两个层,分别是Enemies和Zombie.现在看起来如下图:

这些层将定义绘制顺序,Layer 0,名字是Default,是在最远最后面的,Layer 1,名字是Cats,在它的前面.
现在,已经添加的每个游戏物体都是被设定为Default层.背景图像在这层是没问题的,因为它在最后面,所以我们要更改其它精灵的层.
在Hierarchy视图选择cat的Sorting Layer为Cats.你会在场景视图和游戏视图里立刻看到cat出现了.

在新图层的cat

场景中能看见cat了
在Hierarchy视图中选择enemy的Sorting Layer到Enemies层.这样以来,你会看到老太太(old lady)显现在猫的前面,猫会不会绊倒欧巴桑?管它呢…
最后,将zombie的层设定为Zombie,确保所有精灵都在背景之上渲染,现在视图看起来像这样:

正确绘制顺序的游戏视图
注:精灵渲染器同样有个名为Order的属性,使用它可以调整相同排序层中精灵间顺序.
在本例中我们不需要调整Order属性,因为我们没有在同一个层里放不同的精灵.从我的测试结果来看,Unity在添加添加一个精灵到一个层的时候,将总会把最新的精灵画在层内旧精灵的前面.
原文链接:http://www.raywenderlich.com/61532/unity-2d-tutorial-getting-started
本部分文字翻译来源:http://blog.1vr.cn/?p=1422
建议使用电驴(eMule)下载分享的资源。
说明:本教程来源互联网或网友分享或出版商宣传分享,仅为学习研究或媒体推广,wanshiok.com不保证资料的完整性。
|