天天看点

unity不同分辨率适配摄像机

竖屏游戏的时候,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;
           

继续阅读