Unity_2D游戏屏幕适配问题

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 20:50   1592   0

1.屏幕的宽高比Aspect Ratio = 屏幕宽度/屏幕高度
2.当摄像机orthographicSize属性值等于当前屏幕高度单位的一半时,摄像机大小正好与屏幕大小(移动端的实际屏幕大小)相等。
【注】这里的高度单位是经过像素到单位比即Pixels To Units换算的,Unity2D中这个比例的默认值是100,即100像素等于1单位。假设我们的游戏屏幕有640像素高,那么实际换算成单位高度则是6.4个单位,当我们摄像机的orthographicSize值是3.2时,摄像机大小刚好与屏幕大小相等。

摄像机实际宽度 = 摄像机orthographicSize * 2 * 屏幕宽高比
等同于
摄像机实际宽度 = 摄像机高度 * 屏幕宽高比

这里写图片描述

问题展示:
当我们在使用iPhone4(640x960)尺寸的时候,此时屏幕的单位高度是9.6,orthographicSize为4.8,摄像机大小正好与屏幕大小(移动端的实际屏幕大小)相等,并且单位宽度是6.4.

这里写图片描述

但是我们此界面展示在iPhone5(640x1136)尺寸的时候,效果却不尽人意,如图:

这里写图片描述

我们看到场景中的游戏对象将近有一半被摄像机裁剪掉了。
原因如下:
Aspect Ratio = 640/1136 = 9/16;
摄像机的高度 = 4.8 * 2 = 9.6;
摄像机的宽度 = 9.6 * 9 / 16= 5.4

5.4小于6.4,所以我们就看到了游戏对象被裁剪了一部分,如果我们要继续保持和iPhone4上的宽度,那么我们可以调整orthographicSize
摄像机高度 = 摄像机宽度/Aspect Ratio = 摄像机宽度 * 16/9=6.4*16/9=11.38;
orthographicSize = 摄像机高度/2 = 5.69;

效果图如下:

这里写图片描述

参考代码(代码挂载到摄像机上):

using UnityEngine;
using System.Collections;

public class Test : MonoBehaviour {

    //基于iPhone4比例的单位高度
     float devHeight = 9.6f;
    //基于iPhone4比例的单位宽度
    float devWidth = 6.4f;

     // Use this for initialization
    void Start()
    {

         float screenHeight = Screen.height;
         Debug.Log("screenHeight = " + screenHeight);
        //摄像机的尺寸
         float orthographicSize = this.GetComponent<Camera>().orthographicSize;
         //宽高比
         float aspectRatio = Screen.width * 1.0f / Screen.height;
         //摄像机的单位宽度
         float cameraWidth = orthographicSize * 2 * aspectRatio;

         Debug.Log("cameraWidth = " + cameraWidth);
        //如果设备的宽度大于摄像机的宽度的时候  调整摄像机的orthographicSize
        if (cameraWidth < devWidth)
        {
            orthographicSize = devWidth / (2 * aspectRatio);
            Debug.Log("new orthographicSize = " + orthographicSize);
            this.GetComponent<Camera>().orthographicSize = orthographicSize;
        }

     }
}

转载自:https://blog.csdn.net/yy763496668/article/details/77824413

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP