Unity怎么自适应分辨率,一段段给你解释

    xiaoxiao2023-09-19  1

    Hello,我是KitStar。 我是学习Unity的一名初级程序员。如果,一下文章整理的不对。还请见谅。

    在学习Unity之中,难免会碰到在其他平台与PC平台会出项分辨率不同的尴尬问题。那么.................

    using UnityEngine; using System.Collections; using System;   //命名空间:   System     程序集:  mscorlib(mscorlib.dll 中) public class CamerAdjust : MonoBehaviour {     // Use this for initialization     void Start ()     {         int ManualWidth = 1280;   //首先记录下你想要的屏幕分辨率的宽         int ManualHeight = 720;   //记录下你想要的屏幕分辨率的高        //普通安卓的都是 1280*720的分辨率         int manualHeight;         //然后得到当前屏幕的高宽比 和 你自定义需求的高宽比。通过判断他们的大小,来不同赋值         //*其中Convert.ToSingle()和 Convert.ToFloat() 来取得一个int类型的单精度浮点数(C#中没有 Convert.ToFloat() );         if (Convert.ToSingle(Screen.height) / Screen.width > Convert.ToSingle(ManualHeight) / ManualWidth)         {             //如果屏幕的高宽比大于自定义的高宽比 。则通过公式  ManualWidth * manualHeight = Screen.width * Screen.height;             //来求得适应的  manualHeight ,用它待求出 实际高度与理想高度的比率 scale             manualHeight = Mathf.RoundToInt(Convert.ToSingle(ManualWidth) / Screen.width * Screen.height);         }         else         {   //否则 直接给manualHeight 自定义的 ManualHeight的值,那么相机的fieldOfView就会原封不动             manualHeight = ManualHeight;         }                      Camera camera = GetComponent<Camera>();                float scale = Convert.ToSingle(manualHeight / ManualHeight);            camera.fieldOfView *= scale;                      //Camera.fieldOfView 视野:  这是垂直视野:水平FOV取决于视口的宽高比,当相机是正交时fieldofView被忽略         //把实际高度与理想高度的比率 scale乘加给Camera.fieldOfView。         //这样就能达到,屏幕自动调节分辨率的效果     }     }

    当然,代码肯定不是我想出来的。我只是代码的搬运工和解析猿。 当然,正交相机是没有fieldOfView的。程序会自动忽略正交相机。只对透视相机适用

    转载请注明原文地址: https://ju.6miu.com/read-1279046.html
    最新回复(0)