如何创建响应式场景

how to create a responsive scene

我目前正在使用 Unity3D 引擎创建 2D Android 和 iOS 游戏。我正在 nexus 5 和 iPhone 5s 设备上测试游戏。到目前为止一切正常,我对结果非常满意,但是当我在 iPad 或三星平板电脑上测试该应用程序时,我的游戏场景 中的所有对象都不在正确的位置不再。这是 Unity3D 中的常见问题吗?

我知道我遗漏了一些东西,但我试着做了一些研究,我发现只有 改变正交相机比例可能会解决这个问题,但我发现它是需要编写大量代码,因为我的游戏不仅有一个场景,还有多个场景,每个场景都有自己的游戏对象。

有没有其他方法可以解决这个问题?

没有针对不同设备的单独场景。您可以使用 Screen 对象检查显示器的高度和宽度。然后,您可以使用它来将相机的正交尺寸设置为使一切都按预期可见的尺寸。

更新:我误解了你的问题,你说的是GameObject,我明白了UI。

请检查this。我的游戏没有这个问题。但是当我用 mac 或 windows machines 尝试时,这是有问题的。所以也许这可以解决。 其他解决方案更常见,你和 Agumander 说,更改 Cameraorthographic size

这是为了 UI

可以使用Unity UI,不需要分开。有那么多不同分辨率和密度的设备,你需要创造那么多场景。所以分开场景是没有意义的。

Unity UI 具有基于像素的解决方案,这对于许多密度和分辨率选项非常有用。例如,它有 VerticalLayoutGroupHorizontalLayoutGroup 以便于像元素可视化这样的列表。

最重要的是:您要更改 UI 以适应不同的屏幕尺寸或分辨率吗?例如 iPad 有更大的屏幕,所以用户可以看到更多的内容。这改变了用户体验。也许你需要考虑一下。

一切都是为了正确设置锚点。 如果您使用的是新的 UI 系统,请确保将对象锚定在您希望它们所在的位置,这就是您实现分辨率独立性的方式。

有关锚定的详细信息,请参阅this tutorial