与平板电脑的Unity Android游戏问题

时间:2015-03-30 07:31:03

标签: android unity3d tablet screen-resolution screen-size

我在团结(纵向视图)中处理2D安卓游戏。 我使用以下代码来扩展我的游戏场景以适应所有屏幕,它适用于所有手机

void Start()
{
    float targetaspect = 9.0f / 16.0f;

    // determine the game window's current aspect ratio
    float windowaspect = (float)Screen.width / (float)Screen.height;

    // current viewport height should be scaled by this amount
    float scaleheight = windowaspect / targetaspect;

    // obtain camera component so we can modify its viewport
    Camera camera = GetComponent<Camera>();

    // if scaled height is less than current height, add letterbox
    if (scaleheight < 1.0f)
    {
        Rect rect = camera.rect;

        rect.width = 1.0f;
        rect.height = scaleheight;
        rect.x = 0;
        rect.y = (1.0f - scaleheight) / 2.0f;

        camera.rect = rect;
    }
    else // add pillarbox
    {
        float scalewidth = 1.0f / scaleheight;

        Rect rect = camera.rect;

        rect.width = scalewidth;
        rect.height = 1.0f;
        rect.x = (1.0f - scalewidth) / 2.0f;
        rect.y = 0;

        camera.rect = rect;
    }

}

但是当我在平板电脑上测试我的游戏时,它完全适合身高,但在宽度方面,游戏视图宽度比平板电脑屏幕宽度更短。平板电脑两侧都有黑色区域。

注意:根据上面的代码,游戏视图会缩放到480X854的大小。

感谢您对我的查询表现出兴趣!

1 个答案:

答案 0 :(得分:0)

这正是您的代码所说的。请参阅&#34;添加邮箱&#34;评论。此脚本通过在设备不是9:16的位置添加空格来确保您始终能够看到9:16的宽高比。

您可能还没有在手机上看到问题,因为很多智能手机都使用16:9宽高比(9:16肖像),这与此脚本中的基本宽高比完全匹配。许多桌子更加平方(iPad为4:3)因此平板电脑更有可能展示拳击。宽度超过16:9的设备将显示letterboxing。

如果您不想要信箱和胶囊效应,请不要使用此脚本!

设计您的游戏用户界面,使其不依赖于单一宽高比。 Unity UI内置了对此的支持。例如,请参阅CanvasScaler以及layout options提供的灵活RectTransform