Создает полноэкранный слой, в который добавляются элементы управления GUI, рисуемый поверх всего холста перед сценой, когда foreground равно true; adaptiveScaling масштабирует слой с плотностью пикселей экрана.
Имя, флаг переднего плана и флаг адаптивного масштабирования
Полноэкранная текстура UI
const ui = bitbybit.babylon.gui.advancedDynamicTexture.createFullScreenUI({ name: "ui", foreground: true, adaptiveScaling: false });
const panel = bitbybit.babylon.gui.stackPanel.createStackPanel({ name: "panel", isVertical: true, spacing: 8, width: "300px", height: "400px", color: "#00000000", background: "#00000055" });
ui.addControl(panel);
Создает текстуру GUI, натянутую на меш, так что добавленные в нее элементы управления появляются на поверхности меша в сцене; мешу нужны текстурные координаты, обычный выбор - плоскость.
width и height задают размер текстуры в пикселях, supportPointerMove позволяет элементам управления реагировать на наведение, а onlyAlphaTesting рисует ее без смешивания.
Меш, размер текстуры, параметры указателя, альфа-канала, отражения и выборки
Текстура GUI на меше
const plane = bitbybit.babylon.meshBuilder.createRectanglePlane({ width: 4, height: 2, sideOrientation: Bit.Inputs.BabylonMesh.sideOrientationEnum.doubleside, enableShadows: false });
const ui = bitbybit.babylon.gui.advancedDynamicTexture.createForMesh({ mesh: plane, width: 1024, height: 512, supportPointerMove: true, onlyAlphaTesting: false, invertY: true, sampling: Bit.Inputs.BabylonTexture.samplingModeEnum.trilinear });
Поверхность, на которой рисуются элементы управления GUI: полноэкранный слой поверх холста или текстура, натянутая на меш, чтобы элементы управления находились в 3D-сцене. Каждый элемент управления нужно добавить на одну из них, напрямую или через контейнер, прежде чем он отобразится.