当前位置: 首页 > 知识库问答 >
问题:

如何根据统一的不同屏幕分辨率调整精灵的大小?

方祺
2023-03-14

我得到了一个获取屏幕大小的代码,如下所示。

public static float GetScreenToWorldWidth
{
    get
    {
        Vector2 topRightCorner = new Vector2(1, 1);
        Vector2 edgeVector = Camera.main.ViewportToWorldPoint(topRightCorner);
        var width = edgeVector.x * 2;
        return width;

    }
}

如果我有屏幕宽度,如何利用它来调整精灵到各种屏幕分辨率。对于这个分辨率(2732 x 2048肖像模式ipad pro)我不需要改变精灵大小。但对于所有其他屏幕分辨率相应地改变。

共有1个答案

牟稳
2023-03-14

您可以在正交摄影机上执行以下操作:

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;
    }
}

此脚本将调整相机的大小,使世界大小的对象(宽度、高度)始终与相机水平或垂直匹配(取决于哪个方向不适合)。

 类似资料:
  • 功能介绍 获取百度移动统计平台的全部屏幕分辨率列表 接口 https://openapi.baidu.com/rest/2.0/mtj/svc/config/getScreenList?access_token={ACCESS_TOKEN} 请求参数 参数名 类型 描述 样例 access_token string 用户登入后获取的token 1.a6b7dbd428f731035f771b8d

  • 问题内容: 我需要根据屏幕分辨率更改templateURL,例如,如果我的屏幕宽度小于768px,则必须加载“ templates / browse-content- mobile.html”;如果屏幕宽度大于768px,则必须加载“ templates / browse-content” .html”。 当前使用的代码。 在这里我正在尝试此代码 此代码块正常工作,它根据那里的分辨率加载移动和桌面

  • Android设备具有mdpi、hdpi、xhdpi、xxhdpi等屏幕分辨率。在Android系统中编程时,我会用这些分辨率为手机编写不同的代码。但Flutter是android和ios的开发环境。我需要为不同分辨率的android和ios手机分别编程吗?ios中是否有mdpi、hdpi、xhdpi等分辨率?

  • 因此,我有一个SurfaceView类绘制所有对象。 例如,当我画一个圆时,我必须指定一个大小 有没有办法根据屏幕分辨率和密度的大小来调整尺寸 因为我在画圆时,我希望它在低分辨率设备上的大小与在高分辨率设备上的大小相同。 当绘制半径为50px的圆时,较小屏幕上的圆比较大屏幕上的圆大。 有什么想法吗? 编辑:我知道在创建一些布局时,我可以使用密度像素。但我不是在做布局,我是在surfaceview上

  • 问题内容: 我使用myEclipse Matisse创建了Java GUI。当我的屏幕分辨率为1024x768时,它可以正常工作,但是当我更改分辨率时,我的GUI无法正常工作。我希望我的GUI窗口应根据屏幕分辨率重新调整大小,我正在扩展JFrame以创建主窗口。 这是行不通的,我该怎么做,设置硬编码的大小或使用ToolKit使用的帧大小保持不变。 问题答案: 您正在呼叫,它会更改框架大小,以便恰好

  • 我正在使用Selenium和Chrome驱动程序来拍摄一个站点的屏幕截图,并将窗口尺寸设置为800x600。当我看到.png时,它比这个值更大,并且每个屏幕分辨率都有变化。差异大于滚动条,将其设置为捕获800x600,它将产生1179x704图像(我的监视器res是3840 x 2160)。这也会根据监视器上的分辨率而改变。有没有一种方法可以设置它,这样无论屏幕分辨率是多少,输出都是一样的? 我试