前段时间,我提到我们花了一些时间使游戏像素完美。 为了使我们漂亮的2D像素美术游戏在任何分辨率下看起来都不错,我们必须这样做。 我们也不希望物体移动或降落在半像素上。
默认情况下,Unity不能完美地显示像素艺术,因此我们需要在此处和此处进行一些更改并实施一个小的修补程序。 但是不用担心,这并不难。
免责声明 :本教程的所有内容均基于多个来源,但主要基于此很棒的Twitter线程 。 我也知道还有其他方法可能会做得更好和更好,但这是经过大量研究后我正在使用的方法。
让我们看看实现此像素完美外观的步骤。
![](https://i-blog.csdnimg.cn/blog_migrate/e08b54fe2d01fedd6e06dbf361c145b6.png)
关闭反锯齿
电子游戏中使用了抗锯齿来平滑纹理边框。 通常,您希望启用该功能,以使纹理看起来不会“太像素化”,而可以在屏幕上平滑显示。 这是反锯齿功能的一个示例:
![](https://i-blog.csdnimg.cn/blog_migrate/0c4954fcebd84c1fb6187057e1b3c87d.png)
底线平滑且模糊。 如果我们看到的分辨率小于此分辨率,这将使其看起来不错。 如果不激活抗锯齿功能,我们会注意到像素化边框。
在我们的情况下,我们恰好想要对面,因此我们需要停用抗锯齿。 默认情况下,它在Unity中被激活。
转到“ 编辑”->“项目设置”->“质量”并将“ 抗锯齿”设置为“禁用”
![](https://i-blog.csdnimg.cn/blog_migrate/a8192521fed1dc9c33fe27b438f5515c.png)
请注意,可能存在多个质量级别。 在我的图片中有非常低,低,中,高,非常高和超。 您需要点击他们每个人而改变自己的抗锯齿设置为Disabled 在所有这些 。
精灵导入设置
导入图像/纹理时,默认情况下,Unity会设置一些过滤器以使其在屏幕上显示时变得平滑。 同样,对于其他类型的游戏,这可能是个好主意,但对于像素艺术游戏则不是。
您需要转到项目中具有的每个精灵,然后在检查器中更改以下设置:
![](https://i-blog.csdnimg.cn/blog_migrate/c43bb20afd4a449adac2f15da8dff7ea.png)
将“ 滤镜模式”更改为“指向”(无滤镜),然后关闭“ 压缩” (如图中将其更改为“无”)。 同样,需要对游戏中的每个精灵进行此操作。
单位像素数(PPU)
您也可以在“精灵导入设置”中找到此设置。 默认为100。 将其更改为以像素为单位的瓦片大小 (例如,在我们的示例中,我们有19x19瓦片)。
![](https://i-blog.csdnimg.cn/blog_migrate/6ee8a5bc124ea4276429f0b3c180bd32.png)
这也与我们需要更改的下一件事相关。
相机外形尺寸
现在我们已经设置好PPU,我们需要告诉相机我们希望它基于该PPU多大,以便屏幕上的一个像素与游戏中的一个像素相对应。
要获得该大小,我们只需要做一个简单的公式:
相机外形尺寸=垂直分辨率/ PPU / 2
有了该大小后,单击“ 主摄像机”对象,然后将该值放入“大小”设置中:
![](https://i-blog.csdnimg.cn/blog_migrate/c23a6f4fbf13c36dece4da849efaa0bc.png)
在我们的例子中,垂直分辨率为180px,PPU为19px,因此:
180/19/2 = 4.73684
值得一提的是,在我们的案例中,我们以微小的分辨率渲染所有内容,然后再进行缩放。 不要放置所需的垂直分辨率(在我们的示例中为720p),而是放置您要渲染的分辨率。
对齐网格脚本
这是使其看起来完美的最后一步。 到目前为止,它不应再显得模糊,但由于分辨率提高,我们仍然存在可以将对象放置在“一半”像素中的问题。
有多种方法可以避免这种情况,例如使用特定的2D相机插件或着色器。 它们可能比我正在使用的效率更高,但是我发现它们比这种方法更复杂。
这个想法是,您在LastUpdate()中放置了一个将对象调整为“平铺网格”的脚本。
为此,您需要将Sprite渲染器移动到子对象,并在该对象中添加该脚本。
这是我正在使用的脚本:
它检查父级位置并将其四舍五入到网格上。 因此不再有半像素移动!
通过所有这些设置,您的游戏现在应该看起来还不错。 我希望这可以帮助其他人调整Unity for Pixel Art游戏。
From: https://hackernoon.com/making-your-pixel-art-game-look-pixel-perfect-in-unity3d-3534963cad1d