首页 > 代码库 > 项目经验总结[1]屏幕自适应

项目经验总结[1]屏幕自适应

/// <summary>        /// Sets the viewport.        /// </summary>        /// <param name="fWidth">F width.</param>        /// <param name="fHeight">F height.</param>        public static void SetViewport(float fWidth, float fHeight)        {            //--- 屏幕分辨率 ---//            float w = (float)Screen.width;            float h = (float)Screen.height;                        //--- 游戏制作的目标分辨率 ---//            float destW = fWidth;            float destH = fHeight;                        float fx = 0f;            float fy = 0f;            float fw = 1f;            float fh = 1f;                        //--- 现在宽高比 不足, 即 宽度不足,高度足够,那么按照 不足的为基准,调整足够的(按新的宽度来调) ---//            if(destW/destH > w/h)            {                //高度缩小 ,宽度不变为1                fw = 1f;                fh =  destH * w/destW / h;                 fy = (1f - fh) / 2f; //为了保证视口在屏幕中央, 需要调整视口高度             }            else if(destW/destH < w/h)            {                //宽度缩小,高度不变                fh = 1f;                fw = destW * h/destH  / w;                 fx = (1f - fw) / 2f;            }                        for(int i = 0; i < Camera.allCameras.Length; i++)            {                Camera cam =  Camera.allCameras[i];                cam.rect = new Rect(fx, fy, fw, fh);            }        }

这是一段屏幕自身应的代码,运用的是C#写的。当我们的游戏项目在不同的屏幕上运行的时候,我们都要考虑到屏幕的自适应情况,给玩家最好的体验。。。

项目经验总结[1]屏幕自适应