我正试图让我的第一场比赛团结一致。我需要支持android和iOS的不同分辨率。问题是当我为任何一个res ex放置背景图像时。 1536x2048,它没有正确显示640x960。屏幕大小是变化的,但sprite和bg sprite没有根据res进行缩放。
我不清楚如何实现它。但是,它必须是一个基本的东西,因为Android上有这么多游戏,所有手机都有不同的资源。和dpi。
应该有一些公式,或者我们只需要为此设置orthographic.size。我正在使用这个:
//计算尺寸
Camera.main.orthographicSize = Screen.currentResolution.height / (2*70); //
Camera.main.orthographicSize = Screen.currentResolution.height / 2;
Debug.Log("Camera size :" + Camera.main.orthographicSize);
Debug.Log("Width : " + Screen.currentResolution.width + " height : " + Screen.currentResolution.height);
//根据屏幕的分辨率,这不会给我宽度和高度。对于1536x2048 - >我明白了,宽度:1366身高:768
我发现这是类似的问题
http://forum.unity3d.com/threads/orthographic-screen-size.113641/但它没有帮助,而问题几乎相同。
如果有人可以分享如何通过代码获得正确的屏幕分辨率以及如何设置bg精灵和其他精灵的宽度,它可以解决问题或者
如果有某些设置采用默认场景并自动缩放以获得各种分辨率。它会有所帮助。
答案 0 :(得分:1)
Unity不会那样扩展。相反,我们设计资产以满足我们的需求。你正在使用一个公式,但我不知道你对它的期望。 这里有一些信息:正交尺寸是视口的高度。以你的例子为例,对于2048的高度,相机尺寸为:2048/2/100 = 10.24。无论设备屏幕大小如何,都将保持这种状态。唯一的区别是它在较小的设备上不那么详细,有点像缩小效果。现在对于宽度,我不确定肖像,但让我们说9:16是最宽的。因此,如果您为此纵横比设计bg,则bg将在较小的设备上裁剪,在9:16设备上显示为完整。要设计此宽高比,您的bg需要为9/16 * 10.24 * 100 = 576像素。 (再次,我不确定在纵向模式下哪个宽高比最宽)。希望有所帮助