android - 如何使用不同的屏幕分辨率

标签 android ios unity3d screen-resolution

我的游戏使用 Unity 4.3.3。我正在为 Android 和 iOS 设备制作游戏。由于我对统一很陌生,我似乎无法找到一种方法来处理不同的屏幕分辨率。 我正在为我的脚本使用 c#。

我希望我的游戏全屏运行。我在 iPad 2 上对其进行了测试,它运行完美,但对于 iPhone 4,侧面被剪裁,对于 iPhone 5,它们被剪裁得更多。解决办法是什么?我应该在 Player Settings > iOS > OtherSettings > Target Resolution 下选择哪个选项?

最佳答案

unity 会更改其游戏内相机以匹配其使用的屏幕纵横比的尺寸。显然这并不总是需要的,所以有几种方法可以解决这个问题:

1) 第一种方法很容易实现,虽然看起来很少。您可以简单地更改相机的纵横比以匹配您设计游戏的那个。因此,例如,如果您将游戏设计为 4:3,您将执行以下操作:

Camera.aspect = 4f/3f;

请记住,这会在不同的纵横比上扭曲游戏。

2) 另一种方法稍微复杂一些,但结果看起来要好得多。如果您使用的是正交相机,要记住的重要一点是,无论使用什么屏幕分辨率,正交相机都会将高度保持在设定值,而只会改变宽度。例如,对于大小为 10 的正交相机,高度将设置为 2。考虑到这一点,您需要做的是补偿每个级别中尽可能宽的相机(例如,具有更宽的背景) 或动态更改相机的正交尺寸,直到其宽度与您创建的相匹配。

GUI 组件更容易实现,只需将它们的位置设置为取决于需要的屏幕分辨率。例如,如果您希望一个按钮出现在右上角,您只需将其位置设置为 position = new Vector2(Screen.width - 50, 50);

编辑:既然您提到了您使用的设备,我做了一些查找以找到每个设备使用的宽高比:Ipad2 = 4:3、Iphone4 = 3:2 和 Iphone5 = 16:9

既然你说它在 Ipad2 上看起来很完美,我猜你已经将游戏设计为使用 4:3 的纵横比,所以你提到的“剪辑”只是你的正交相机加宽了。解决方案是使用我上面描述的两种方法之一。

您可以很容易地在统一编辑器中查看它在每个设备上的外观。如果您转到游戏选项卡(当您在统一编辑器中按下播放时弹出),您会看到它有一个设备名称,以及分辨率和纵横比。更改此设置可让您看到不同纵横比下的外观。

关于android - 如何使用不同的屏幕分辨率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21369067/

相关文章:

android - 在 android LatinIME 键盘中使用自定义字体

android - 为什么 Font Awesome 不为使用 Xamarin Forms 的 iOS 应用程序显示?

c# - 如何将带有完成按钮的工具栏添加到UIPickerView?

c# - 在 map 内创建障碍

monodevelop - 如何覆盖MonoDevelop中的默认代码格式化策略?

c# - Firebase Unity 密码身份验证失败

android - 使用 Google Cloud Endpoints 时如何避免中间人攻击?

ios - json.swift 错误是 Self.init 未在委托(delegate)初始化程序的所有路径上调用

ios - 当文本字段在 uitableview 的单元格中时,不调用 touchesBegan

android - AsyncTask,它必须承受这样的性能损失吗……?