android - 在 Unity 中支持多种纵横比

标签 android ios unity3d 2d aspect-ratio

我一直在尝试创建一个 Unity 2D 游戏,该游戏支持 Android 和平板电脑设备的各种纵横比。有没有 Unity 提供或推荐的方法可以做到这一点?

最佳答案

有几件事应该考虑。首先是哪些元素应该被允许缩放?有两个类别,即 UI 和游戏元素。

游戏元素部分可能意味着很多事情。如果游戏空间有限,关键通常是包括大量的“负空间”,或者不显着影响游戏的图像部分。例如,可以从左侧和右侧裁剪下图,而不会显着影响图像。将图像的中心部分或一侧作为关键元素。

enter image description here

也可以拉伸(stretch)元素,尽管这可能会导致不良影响。拥有多余的图像并使用不同的纵横比进行测试通常是此类背景元素的最佳方式。这些背景元素可以放置在背景中,将 Canvas 设置为“随屏幕大小缩放”,并将“屏幕匹配模式”设置为最适合您的图像的效果。有关详细信息,请参阅“Canvas Scaler”。

至于其他UI元素,关键是使用 anchor 。当您放置它时,您可以告诉 UI 元素占用多个像素或填充屏幕的一部分。查看每个此类 UI 对象中包含的“Rect Transform”组件。您也可以在屏幕上调整这些。

最后,您可以通过编程方式完成。存在 Screen.heightScreen.width。您可以在运行时根据需要调整对象以使其工作。我建议您不要对所有事情都这样做,但在某些情况下可能会有所帮助。

关于android - 在 Unity 中支持多种纵横比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26210850/

相关文章:

android - FileProvider 正在打开一个 PDF,但它是空白的。为什么?

ios - 无法显示跨到另一个 tableview 的 Tableview 和自定义表格单元格

c# - Unity C# 中的 2 Int 元组和包含方法

ios - 广告后,声音在游戏中消失

wcf - 使用 Unity 找不到命名空间 "ServiceModel"

android - 水平两行菜单在 Android 中不起作用

java - 调试配置 java.lang.NullPointerException 错误

android - 使用 Facebook SDK 的 NullPointer

iphone - iOS 上的蓝牙 A2DP API 支持吗?

ios - iOS 应用程序的相机、麦克风和音频/视频存储权限