【问题标题】:Develop 2D game Inside Canvas Scaler在 Canvas Scaler 内开发 2D 游戏
【发布时间】:2015-11-03 21:26:18
【问题描述】:

我是 Unity 新手,我意识到如果没有 Asset Store 上提供的付费 3rd 插件,很难在 Unity 上制作多分辨率 2d 游戏。

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

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

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

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

问候

【问题讨论】:

  • Canvas 用于 GUI 组件,并非用于创建完整游戏。但是改变游戏的分辨率应该没问题,我相信你可以将视口设置为 800 x 600,我可能有一些编码,但我稍后会为你检查
  • 感谢您的帮助。我正在等待您的代码更改游戏的分辨率。
  • 看来我放置的代码在这里可以帮助你:(我拥有的代码基本上是无论如何都保持游戏分辨率相同,即使它们全屏显示。但是我确实找到了这个@ 987654321@
  • 谢谢,我会试试这个:)

标签: unity3d aspect-ratio unity3d-2dtools


【解决方案1】:

也不要忘记GUIGraphics。一个普遍的误解是GUI 它已贬值且缓慢。不,这不对。 GUI 的 GameObject 助手很糟糕并且已被贬值,但是当您只需要在屏幕上绘制纹理或一些文本时,用于放入 OnGUI 的 API 非常有用。它们被称为旧版,但没有删除它们的计划,整个Unity UI is made out of it anyway

我已经在这些基础上制作了一些游戏,使用 Unity 作为绘制四边形的过度设计的多平台 API。

如果你想要更多,还有GL

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

【讨论】:

  • 至于多分辨率 - 这是您必须自己实现的事情之一 - 就像每个人在 SDL、Allegro 或许多闪存引擎等旧式框架中所做的那样。
【解决方案2】:

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

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

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

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

【讨论】:

  • 感谢您的帮助。使用画布缩放器开发完整游戏可能导致的主要问题是什么?
  • 开发一个功能不那么丰富的小游戏:画布缩放器不会造成任何问题,但在某些情况下,例如您希望玩家能够通过拖动手指来滚动地图屏幕。这可能有点困难(并非不可能),因为画布缩放器限制了某些在运行时移动的对象。 “并非不可能”是指统一性使您可以从他们的 UI 类继承并以您想要的方式扩展它们。
  • 感谢您的回答。你是说我在使用该解决方案时会遇到性能问题吗?
  • 否它不会导致任何性能问题。我的意思是,它可能会让您难以实现某些功能。
猜你喜欢
  • 1970-01-01
  • 2011-03-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多