Code: Select all
public void renderText(Vec3d pos) {
var client = MinecraftClient.getInstance();
if (client == null) return;
var textRenderer = client.textRenderer;
if (buffer == null) return;
matrixStack.push();
Render3DUtils.calculateModelViewMatrix(matrixStack, pos, camera);
matrixStack.scale(-0.025f, -0.025f, 0);
textRenderer.draw(Text.literal("123"), 0, 0, 0xffffffff, true, matrixStack.peek().getPositionMatrix(),
MinecraftClient.getInstance().getBufferBuilders().getEntityVertexConsumers(),
TextRenderer.TextLayerType.NORMAL,
0, 0xF000F0);
matrixStack.pop();
}
Code: Select all
public static void calculateModelViewMatrix(MatrixStack matrixStack, Vec3d worldPos, Camera camera) {
Quaternionf inverseRotation = new Quaternionf();
camera.getRotation().conjugate(inverseRotation);
matrixStack.multiply(inverseRotation);
matrixStack.translate(
(float)-camera.getPos().x,
(float)-camera.getPos().y,
(float)-camera.getPos().z
);
matrixStack.translate(
(float)worldPos.x,
(float)worldPos.y,
(float)worldPos.z
);
}


UPD: Zur Verdeutlichung, ich Ich habe einen Punkt hinzugefügt, an dem ich erwarte, Text zu sehen.
Mobile version