码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2015-02-02 13:59:49      阅读:154      评论:0      收藏:0      [点我收藏+]

标签:

/// <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]屏幕自适应

标签:

原文地址:http://www.cnblogs.com/heisaijuzhen/p/4267535.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!