3D UI с React в Wonderland Engine
С Wonderland Engine интеграция 3D UI элементов на базе React становится простым процессом. Это руководство проведет вас через настройку и использование библиотеки @wonderlandengine/react-ui для создания интерактивных и производительных 3D UI.
Установка через NPM
Выполните следующую команду, чтобы установить библиотеку в корневом каталоге проекта:
npm i @wonderlandengine/react-ui Или отредактируйте package.json и добавьте "@wonderlandengine/react-ui": "lastest" в раздел "dependencies". Wonderland Editor автоматически установит новые зависимости.
Настройка TypeScript
Добавьте следующее в файл tsconfig.json вашего проекта:
{
"compilerOptions": {
"jsx": "react"
}
} Настройка esbuild
- Откройте “Views > Project Settings > esbuildFlagsEditor”.
- Добавьте
--bundleк флагам.
Настройка конвейеров и материалов
Вам необходимо настроить три конвейера для рендера вашего UI:
Конвейер текста UI
- Создайте новый конвейер
Textчерез “Right-Click > Duplicate” на существующем текстовом конвейере. - Измените его имя на
UI Text. - Настройте его с следующими параметрами глубины:
depthTestиdepthWriteвключены; функция глубины установлена наalways.
Конвейер для цвета UI
- Создайте новый конвейер
Flat, дублируя существующий. - Измените имя на
UI Color. - Настройте его с теми же параметрами глубины:
depthTestиdepthWriteвключены; функция глубины установлена наalways.
Конвейер текстурированного цвета UI
- Продублируйте конвейер
UI Color. - Переименуйте его в
UI Color Textured. - Включите функцию
TEXTURED.
Создание материалов
- Создайте 3 новых материала в
Resources > Materials. - Переименуйте материалы в
UI Text,UI ColorиUI Color Textured. - Назначьте конвейеры этих материалов созданным ранее конвейерам.
Создание UI React
Добавьте файл с именем tutorial-ui.tsx в папку js и вставьте следующий код:
import {ReactUiBase} from '@wonderlandengine/react-ui';
import {Container, Text} from '@wonderlandengine/react-ui/components';
import React, {ReactNode} from 'react';
const App = (props: {comp: TutorialUI}) => {
const comp = props.comp;
return (
<Container>
<Text>Hello World</Text>
</Container>
);
}
export class TutorialUI extends ReactUiBase {
static TypeName = 'tutorial-ui';
static InheritProperties = true;
render(): ReactNode {
return <App comp={this} />;
}
} Добавление UI в сцену
- Создайте новый объект.
- Добавьте компонент
tutorial-uiк этому объекту. - Установите материалы созданные выше.
Запустите в браузере, используя зеленую стрелку над представлением сцены.
Заключение
Вы успешно настроили фреймворк @wonderlandengine/react-ui для создания 3D UI на базе React в Wonderland Engine.