/// <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#写的。当我们的游戏项目在不同的屏幕上运行的时候,我们都要考虑到屏幕的自适应情况,给玩家最好的体验。。。
时间: 2024-11-09 16:06:35