Advertisement

Unity - 计算 horizontal fov(水平方向上的 field of view)

阅读量:

Unity版本

Unity 2017.4.2

Unity fov

1. 通过Camera组件获取fov(这是vertical fov):

复制代码
    void Start()
    {
        Camera mainCamera  Camera.main;
        float mainCamera.fieldOfView;
        Debug.Log("fov:" fov);
    }

2. 计算horizontal fov

复制代码
    void Start()
    {
        Camera mainCamera  Camera.main;
        float mainCamera.fieldOfView;
        Debug.Log("fov:" fov);
    
        float Mathf.Deg2Rad;
        float22 mainCamera.aspect);
        float Mathf.Rad2Deg;
        Debug.Log("horizontal fov:" horizontalFov);
    }

horizontal fov应用举例

1. 用一张图像作为背景,效果如下:

在Main Camera下创建BackgroundQuad,localPosition=(0, 0, 100),localScale=(100, 100, 1)

2. 我们希望背景图像在水平方向上填满,同时保持原图宽高比,效果如下

Sample Code:

复制代码
    publicclass bg : MonoBehaviour
    {
    
    public Texture bgTexture;
    public Transform backgroundQuad;
    
    float CalcHorizontalFov()
    {
        float Mathf.Deg2Rad;
        float22 Camera.main.aspect);
        return Mathf.Rad2Deg;
    }
    
    // Use this for initializationvoid Start()
    {
        float100// distance form camera to background quadfloat CalcHorizontalFov();
        float22;
        float bgTexture.width;
    
        backgroundQuad.localPosition new00, d);
        backgroundQuad.localScale new1);
    }
    }

转载于:https://www.cnblogs.com/benxie/p/11268379.html

全部评论 (0)

还没有任何评论哟~