Fitviewport 错误的相机定位

Fitviewport Wrong Camera Positioning

我在 phone 上开发了一款分辨率为 1080x1920(纵向)的游戏。我根据它设置了我的 fitviewport。在我的 phone:

上看起来像这样

但是在任何其他 phone 或桌面相机上定位错误。在其他设备上看起来像这样:

我以前在其他项目中使用过fitviewport,但从未遇到过该问题。可能是因为人像模式?

编辑 相关代码在这里:

//in create
camera = new Orthographiccamera();
camera.setToOrtho(false, Gdx.graphics.getWidth(), Gdx.graphics.getHeigth());

viewport = new FitViewport(1080,1920,camera);

//in resize
viewport.update(width,height);

//before starting batch
batch.setProjectionMatrix(camera.combined);

您的代码中有两个相互矛盾的语句:camera.setToOrtho(false, Gdx.graphics.getWidth(), Gdx.graphics.getHeigth())。这会将相机的视口大小设置为显示大小,然后将相机居中。

另一方面,您想使用固定尺寸为 1080x1920 的 FitViewport

如果您的屏幕尺寸刚好是 1080x1920,那没问题,因为中心是一样的。如果屏幕尺寸与您在 FitViewport 中使用的屏幕尺寸不同,则 setToOrtho() 会将相机的中心设置为不是 1080x1920 中心的位置,这就是您注意到偏移的原因。

使用 viewport.update(width, height, true) 将更正此问题。最后一个参数将使相机正确居中并覆盖 setToOrtho().

中发生的事情

让视口管理您的相机并移除 camera.setToOrth() 的调用。