开发2D游戏Inside Canvas Scaler

mis*_*tic 7 aspect-ratio unity-game-engine unity3d-2dtools

我是Unity的新手,我已经意识到,如果资产商店没有付费的第三个插件,就很难在Unity上进行多分辨率的2D游戏.

我做了一些测试,我可以用这种方式做多分辨率支持:

1-将UI(按钮等)中的所有内容放置在渲染模式屏幕空间中的Canvas对象内 - 以16:9参考分辨率和固定宽度覆盖.

2-将其余的游戏对象放入一个名为GameManager的游戏对象中,并在渲染模式屏幕空间中使用Canvas Scaler组件 - 摄像机具有16:9参考分辨率,固定宽度和附加的主摄像头.之后,GameManager中的所有游戏对象,如玩家,平台等,都需要有一个RectTransform组件,例如CanvasRenderer组件和Image Component.

我可以继续以这种方式开发游戏吗,或者这是做错事情的方法吗?

问候

Krz*_*rko 5

另外不要忘了GUI,Graphics.这是一种常见的误解,即GUI它的折旧和缓慢.不,这不对.用于GUI的GameObject帮助程序很糟糕并且已经过折旧,但是OnGUI当您需要的是在屏幕上绘制纹理或某些文本时,用于放入的API 非常有用.它们被称为遗留物,但没有计划删除它们,因为无论如何整个Unity UI都是由它制作的.

我已经在这些游戏上做了几个游戏,使用Unity作为一个非常过度的多平台API用于绘制四边形.

还有GL,如果你想要更多的东西.

请记住 - 没有内置物理,粒子效果,路径查找或任何东西 - 只是在屏幕上绘制内容的简单方法.你将完全控制将要绘制的内容 - 这既是好事也是坏事,取决于你想做什么.


Ana*_*bal 2

我不会推荐您使用 Canvas Scaler 来开发完整的游戏。画布缩放器的预期目的是创建菜单,您应该仅使用它来创建菜单。

不使用画布缩放器创建的 2D 游戏在多种分辨率下不会产生太多问题(大多数情况下不会造成任何问题)。

因此,您的步骤 1 是正确的,但对于步骤 2,您不需要附加画布缩放器组件。

在开发 2D 游戏时,请记住将您的场景标记为 2D(不必要),将相机标记为正交(必要)。