这将是一个系列教程,将探索Unity2D原生2D工具的使用。
相关链接:
Unity4.3 2D教程:入门实战(一)
Unity4.3 2D教程:入门实战(二)
Unity4.3 2D教程:入门实战(三)
Zombie Conga这个游戏是为iPhone创建的,所以我们要将游戏视图尺寸设定为1136 x 640大小.
用Game视图左上角的下拉菜单来改变纵横比或固定分辨率,如下图:
游戏场景现在看起来是这样的:
注:你的视图可能和截图不太一样,因为Unity会根据屏幕空间来依照所选纵横比来调整游戏视图的大小.不管它多大的窗口,你都应该在视图里看到和截图一样的场景图像.
显然,现在这个样子是错误的,现在这里有三个不同的问题,我们需要依次纠正它们:
场景视图的Camera设置不正确,背景不能完全填充到视图中.
场景中游戏对象的渲染顺序不正确,所以cat和enemy都埋在了沙土里.
图像效果不太好,这个基于现在的相机设置你有可能还看不出来,但是相信我说的,质量不好就是不好,对不对? :)
首先我们来修正Camera.
修正相机Projection
在2D游戏中,通常希望相机使用正交视图而不是透视图.本教程的前面我们已经提到Unity默认是使用透视视图的相机.我们在Hierarchy视图中选择”Main Camera”,在相机组件中,将投影设置为正交投影.并调整调整它Transform组件里的Position为(0,0,-10).如下图:
你的Game视图现在像下图:
现在效果看上去与透视投影没什么区别,精灵不受距离相机的远近影响,那怎么放大背景使其充满屏幕呢?我们推荐改变Camera的Size属性.
Camera的Size定义了视图的尺寸.它的值是从视图中心到视图顶部的距离.换句话说这个值等于视图一半高度.视图的宽度基于视图的长宽比计算,如下图:
在本例中,我们需要将背景图片从上到下完全占满整个屏幕,并允许其水平滚动.背景图像的高度是640px,我们取一半,即320px.不过这并不是完全正确的.
在Project视图里选择background的父级查看Import Settings.
在精灵渲染器(Sprite Renderer)的”像素到单位(Pixels to Units)”默认值是100,如下图:
在Unity中,”单位(Units)”并不一定对应到屏幕上的像素.通常物体的大小都是相对于彼此的,可以假设单位为任何计量单位,如1 unit=1米.对于精灵,Unity以像素为单位来确定大小.
例如,准备将一个500px宽度的图像导成精灵.下表显示了将它用不同的”Pixels to Units”时所呈现出的精灵在X轴向上的差别.
不同”像素到单位(Pixels to Units)”的对比图.
background.png为640高,background精灵的”像素到单位(Pixels to Units)”比例为100,所以在Hierarchy视图中它将呈现为6.4个units高.正交相机的Size属性值是屏幕高度的一半,所以我们要设置相机尺寸(Size)为3.2个单位,如下图:
现在背景已经正确的充满了Game视图中,如下图:
正确的相机设置下的Game视图
现在背景图像显示正常了,你就可以看到图像质量的问题了.下面两张图片是图片对比:
当前设置的海滩
改变纹理设置后的海滩
上面这个问题是由于背景纹理在导入时压缩导致.我们可以通过改变导入设置修正它.
原文链接: