如何在关卡编辑器中可视化视差图层?


9

我正在Unity中制作2D游戏,但这将适用于任何2D游戏引擎。

如果我使用正交摄影机实现多平面视差,则很难对背景图层的子画面进行布局,并知道它们将与其他图层中的子画面对齐的位置。

我的第一个直觉是使用多个摄像头,每个摄像头一个,然后为背景图层缩小摄像头的移动速度。这样避免了每帧都必须移动所有背景精灵。问题在于,在编辑器中查看时,以一半速度移动的图层将占用主图层的一半空间。因此,在布局游戏时,很难知道将子图形放置在何处。随着增加层数,该问题将成倍恶化。

我该如何解决?在编辑器中使用图层时,我曾尝试根据图层的预期移动速度对其进行逆缩放。这会将所有背景精灵放置在相对于主图层的正确位置,但是它们却被严重扭曲了。

我是否需要吸收它并不断在编辑器和正在运行的游戏之间切换以测试视差背景?


4
当我做这样的游戏时,我就做到了,这样您就可以在编辑器中拖动相机,并看到视差如何工作。不过,我不确定如何在Unity中专门执行类似的操作。
Tetrad

Answers:


1

我不熟悉Unity,所以我无法为您提供具体的信息,但是听起来您需要的是实现一种GUI方法,以便在运行时使用一组滑块或数字字段对这些值进行微调。实现字段以在运行时更改您要确定的任何值(比例,速度等)将非常简单,这可以立即为您提供反馈。对于放置,您可以通过单击或拖动来使用字段或手动放置(这可能较难实现,但更直观)。

这使您可以完全控制,而无需为更改的每一小部分编译和运行代码。当最终找到满意的外观时,请在常量列表中使用这些值。如果由于要编辑的变量数量(例如,多个关卡中的多个Sprite位置)而使该操作过于艰巨,我想您可以在关卡编辑器中实现它,它具有与手动调整相同的功能,但具有创建和存储调整后的数据的结果。


是的,无论是您自己编写代码,还是在Unity中,使用关卡编辑器似乎都是最好的方法,将其设置为与现有编辑器一起使用。我为每一层编码了一个Paralax设置,并为每个图层使用了一个单独的相机对象,每个相机相对于每帧相对于主相机都进行了适当的移动。然后,即使在编辑器中拖动了主摄像机,也可以使用[ExecuteInEditMode]更新它们。我只需要记住只能直接移动主摄像机。
TenFour04 2013年

1

一个想法:我认为用于顶层的相机就足够了。将子图形放置在与z平面上的距离较远的位置上,并固定该距离可为您提供移动后层的分数。

例如,距前置摄像头的物体距离10在背景层中移动1/10。距离为2的对象将在其相应层中移动1/2,依此类推。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.