我正在一个2D项目中,我在项目中使用不同像素的不同精灵,每个精灵的高度和宽度都不同,而不是正方形。 例如查看项目中的精灵设置,类似地有很多这样的精灵,浅绿色的背景用作足球场,在ipad视图中看起来还可以(2732 x 2048纵向模式)。 SheetProperty
但是如果我将其更改为iphone6视图(750 x 1334 Potrait Mode)。精灵没有调整大小。仍然看起来很大。看不到深绿色的部分。我添加了其他精灵也没有改变它们的大小。图片如下。
我得到了获取屏幕尺寸的代码,如下所示。
dismissViewList(ObjecClass) {
if (_personList.contains(ObjecClass)) {
//_personList is list of ObjecClass shown in ListView
setState(() {
_personList.remove(ObjecClass);
});
}
}
如果我有屏幕宽度,如何使用它来将子画面调整为各种屏幕分辨率。对于此分辨率(2732 x 2048纵向模式ipad pro),我不需要更改子画面的大小。但是对于所有其他屏幕分辨率相应地更改。
答案 0 :(得分:0)
您可以在正交摄影机上执行以下操作:
public class MatchCameraToFit : MonoBehaviour
{
public int Height;
public int Width;
public void Awake()
{
MatchCamera();
}
private void OnValidate()
{
MatchCamera();
}
private void MatchCamera()
{
var cam = GetComponent<Camera>();
if (cam == null) return;
var position = cam.ViewportToWorldPoint(Vector3.zero);
var up = cam.ViewportToWorldPoint(Vector3.up) - position;
var right = cam.ViewportToWorldPoint(Vector3.right) - position;
var matchSize = Mathf.Max(Height, Width * up.magnitude / right.magnitude);
cam.orthographicSize = matchSize;
}
}
此脚本将调整相机的大小,以使相机(Width, Height)
始终可以水平或垂直地完美匹配相机(取决于哪个方向不合适)。