更改LibGDX中的标签公制单位

更改LibGDX中的标签公制单位,libgdx,Libgdx,我正在使用Scene2d为我的屏幕构建ui Stage stage = new Stage(new StretchViewport(Gdx.graphics.getWidth(), Gdx.graphics.getHeight())); Skin skin = ResourceManager.getSkin("uiskin"); Label label = new Label("my text", skin); 调用stage.draw时,标签出现在屏幕的左下角。但是我想使用单位大小的视口 f

我正在使用Scene2d为我的屏幕构建ui

Stage stage = new Stage(new StretchViewport(Gdx.graphics.getWidth(), Gdx.graphics.getHeight()));
Skin skin = ResourceManager.getSkin("uiskin");
Label label = new Label("my text", skin);
调用stage.draw时,标签出现在屏幕的左下角。但是我想使用单位大小的视口

float ratio = (float)Gdx.graphics.getWidth() / Gdx.graphics.getHeight();
Stage stage = new Stage(new StretchViewport(ratio, 1));
通过这种方式,我可以用屏幕高度的百分比来定义其他演员的大小——0.5、0、23等。它对其他演员也很有效,比如ImageActors,但我怎样才能正确地改变标签的大小呢?标签画在同一个地方,我认为,但它是巨大的舞台,因为它的大小是在像素183*10等。及

label.setBounds(.....);

不工作。

您需要设置字体的比例。我不确定为什么它不会自动发生,但修复方法是添加一行,如:

font.GetData().setScale(<viewport width>/Gdx.graphics.getWidth(), <viewport height>/Gdx.graphics.getHeight());