AutoCAD 3DMAX C语言 Pro/E UG JAVA编程 PHP编程 Maya动画 Matlab应用 Android
Photoshop Word Excel flash VB编程 VC编程 Coreldraw SolidWorks A Designer Unity3D
 首页 > Unity3D

Unity4.3 2D教程:入门实战(五)

51自学网 2014-05-24 http://www.51zixue.net

纠正导入设置

在Project视图选择background的父级再次显示导入设置(Import Settings),这次我们看底部的预览图.

这个预览窗口将显示纹理的尺寸,颜色信息和内存使用情况.正如下面截图中所看到的当前纹理大小为1024×320像素,但background.png实际为2048×640像素,这就意味着Unity缩小了50%以适应1024×1024纹理尺寸.

bg_preview_with_default_settings
背景纹理默认设置预览

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

import_settings_default_tab
导入设置默认选项卡

最大尺寸(Max Size)定义生成纹理所允许的最大尺寸,它是一个正方形,默认为1024px.同时图像深度默认为压缩的(Compressed).

我们可以为不同目标平台设置不同的值(例如iOS,网上及Android上),但本例中我们只处理默认(Default)选项卡.

在默认(Default)选项卡中,改最大尺寸(Max Size)到2040和点击应用(Apply)按钮.导入设置现在应该是这样的:

background_import_settings_a

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

game_view_with_correct_settings
用了正确设置的游戏视图

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

annotated_bg_preview

增大纹理尺寸导致纹理内存占用增加了4倍(预览图的数字是四舍五入的).

对于一些纹理,我们可能需要单独调整Format值以提高需要的色彩质量,但是这会进一步增大内存占用.例如,如果你尝试改背景格式为16bits,你将看到纹理内存占用增长到2.5MB,改成真色彩(Truecolor)将会占用3.8MB.

但是,你看下面这两个不同版本的背景效果,会发现用Compressed(压缩)设置和Truecolor(真彩色)比起来差不多:

bg_compressed_good
压缩纹理(Compressed)的背景

bg_truecolor
真彩色(Truecolor)的背景

由于压缩后的背景看起来很不错,同时节省很多内存占用,那么我们就选择压缩格式.现在背景和相机设置看起来都没问题了,我们需要找到 old lady和cat.

控制绘图顺序(Controlling Draw Order)

因为cat和enemy被绘制在了背景后面,所以我们看不到它们.可以调整游戏对象Z轴的位置,使对象靠近相机,我觉得这是一个非常好的方式,然而Unity现在支持图层排序(Sorting Layers),更适合处理这个问题.

在Hierarchy视图选择cat,把精灵渲染器的层排序(Sorting Layer)设置为Default,如下图:

default_sorting_layer

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

tags_and_layers_editor

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

sorting_layers_defined

这些层将定义绘制顺序,Layer 0,名字是Default,是在最远最后面的,Layer 1,名字是Cats,在它的前面.

现在,已经添加的每个游戏物体都是被设定为Default层.背景图像在这层是没问题的,因为它在最后面,所以我们要更改其它精灵的层.

在Hierarchy视图选择cat的Sorting Layer为Cats.你会在场景视图和游戏视图里立刻看到cat出现了.

cat_sorting_layer
在新图层的cat

game_view_with_cat_visible
场景中能看见cat了

在Hierarchy视图中选择enemy的Sorting Layer到Enemies层.这样以来,你会看到老太太(old lady)显现在猫的前面,猫会不会绊倒欧巴桑?管它呢…

最后,将zombie的层设定为Zombie,确保所有精灵都在背景之上渲染,现在视图看起来像这样:

game_view_with_good_draw_order
正确绘制顺序的游戏视图

注:精灵渲染器同样有个名为Order的属性,使用它可以调整相同排序层中精灵间顺序.

在本例中我们不需要调整Order属性,因为我们没有在同一个层里放不同的精灵.从我的测试结果来看,Unity在添加添加一个精灵到一个层的时候,将总会把最新的精灵画在层内旧精灵的前面.

原文链接:http://www.raywenderlich.com/61532/unity-2d-tutorial-getting-started

本部分文字翻译来源:http://blog.1vr.cn/?p=1422


建议使用电驴(eMule)下载分享的资源。

说明
:本教程来源互联网或网友分享或出版商宣传分享,仅为学习研究或媒体推广,51zixue.net不保证资料的完整性。
 
上一篇:Unity4.3 2D教程:入门实战(六)  下一篇:Unity4.3 2D教程:入门实战(四)