Unity中实现垂直角度的相机在不同分辨率下的适配

Posted Hello Bug.

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unity中实现垂直角度的相机在不同分辨率下的适配相关的知识,希望对你有一定的参考价值。

一:透视相机

透视相机的视野范围是一个锥体,虽然可以控制Field of View大小去调整视野范围,但会影响画面效果,所以使用调整相机的高度的方式去适配

using UnityEngine;

/// <summary>
/// 透视相机分辨率适配(只适用于垂直角度的相机)
/// </summary>
public class CameraAdaption_perspective : MonoBehaviour
{
    [Header("初始屏幕宽度")]
    public float initWidth;
    [Header("初始屏幕高度")]
    public float initHeight;
    [Header("初始相机高度")]
    public float initCameraHeight;

    private void Awake()
    {
        float v = (initWidth / initHeight) / (Screen.width * 1f / Screen.height);
        transform.position = new Vector3(transform.position.x, initCameraHeight * v, transform.position.z);
    }
}

二:正交相机

using UnityEngine;

/// <summary>
/// 正交相机分辨率适配(只适用于垂直角度的相机)
/// </summary>
public class CameraAdaption_orthographic : MonoBehaviour
{
    [Header("初始屏幕宽度")]
    public float initWidth;
    [Header("初始屏幕高度")]
    public float initHeight;
    [Header("初始视野大小")]
    public float initOrthographicSize;

    private void Awake()
    {
        float v = (initWidth / initHeight) / (Screen.width * 1f / Screen.height);
        GetComponent<Camera>().orthographicSize = initOrthographicSize * v;
    }
}

 

以上是关于Unity中实现垂直角度的相机在不同分辨率下的适配的主要内容,如果未能解决你的问题,请参考以下文章

Unity实现GUI适配

Unity中实现高级相机操作——Cinemachine插件

Unity中实现高级相机操作——Cinemachine插件

Unity3D血条(HP)

[Unity] 在Unity中实现小地图(Minimap)

Unity之手机键盘自定义输入栏位置适配&不同手机分辨率适配