竖屏游戏的时候,unity中摄像机是自动上下适配的,也就是说在不同分辨率下看到的上下看到的世界范围是一致的,比如在iphone6正常,那么在iphoneX上就有一种放大的效果。而正常的情况是在iphoneX上看到的宽度应该是一致的,也就是说上下应该看到的更宽。废话不多说,直接上代码。
/// <summary>
/// 适配世界摄像机 竖屏宽度适配
/// </summary>
public void MainCameraAdjust()
{
float ratio = GameSetting.Instance.Width * 1f / GameSetting.Instance.Height / (Screen.width * 1f / Screen.height);
if (Camera.main.orthographic)
{
Camera.main.orthographicSize = Mathf.Max(GameSetting.Instance.CameraAdjust, ratio * GameSetting.Instance.CameraAdjust);
}
else
{
Camera.main.fieldOfView = Mathf.Max(GameSetting.Instance.CameraAdjust, ratio * GameSetting.Instance.CameraAdjust);
}
}
代码中GameSetting.Instance.Width和GameSetting.Instance.Height是直接替换为对应的常量值就行,如下。这个值是参照值,就是在这个值下设置正确的,那么其他分辨率上也会是正确的。
public const int Width = 720;
public const int Height = 1280;
如果是横屏的,则需要上下适配,只需要将Width和Height的值对调就行。
public const int Width = 1280;
public const int Height = 720;
这篇博客探讨了在Unity中如何处理竖屏游戏的分辨率适配问题,特别是摄像机在不同分辨率设备上的表现。当从iPhone6转到iPhoneX时,作者指出默认情况下摄像机会有放大效果,而非保持宽度一致。文章提供了代码示例,通过GameSetting.Instance.Width和GameSetting.Instance.Height调整参照值来确保在各种分辨率下保持正确的视图宽度。

3203

被折叠的 条评论
为什么被折叠?



