开发2D游戏Inside Canvas Scaler

时间:2015-08-11 15:03:20

标签: unity3d aspect-ratio unity3d-2dtools

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

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

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

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

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

此致

2 个答案:

答案 0 :(得分:5)

也不要忘记GUIGraphics。这是GUI它贬值和缓慢的常见误解。不,不是。用于GUI的GameObject帮助程序很糟糕并且已经过折旧,但是当您需要的是在屏幕上绘制纹理或某些文本时,用于放入OnGUI的API非常有用。他们称之为遗产,但没有计划删除它们,整个Unity UI is made out of it anyway

我在这些游戏中做了几个游戏,使用Unity作为一个非常过度的多平台API来绘制四元组。

如果您想要更多内容,还有GL

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

答案 1 :(得分:2)

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

在没有画布缩放器的情况下创建的2D游戏不会在多个分辨率上产生太多问题(大多数情况下它们不会引起任何问题)。

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

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