Scene
Применение #
Класс Scene представляет собой коллекцию объектов, а также камеру для рендеринга. Чтобы создать сцену, создайте объект с классом Scene:
import { Scene } from "scene"
const scene = new Scene()
scene.open()
Сигнатура класса #
class Scene {
constructor(options?: SceneOptions);
open(): void;
add(...entities: Entity[]): void;
remove(...entities: Entity[]): void;
setSkyboxColor(color: number): void;
addEventListener(channel: TouchEventType, cb: (ev: TouchEvent) => void): void;
removeEventListener(channel: TouchEventType, cb: (ev: TouchEvent) => void): void;
// Свойства
readonly camera: Entity & Camera;
get entities(): Readonly<Entity[]>;
get material(): Material;
static get activeScene(): Scene | null;
}
Constructor #
В конструкторе указываются базовые настройки сцены. По умолчанию в сцене создается глобальный источник света с IBL освещением.
type SceneOptions = {
castShadows?: boolean,
sunLight?: boolean,
ibl?: boolean,
iblIntensity?: number
}
Параметры SceneOptions:
Свойства #
camera
Главная камера сцены. Является типом Entity с компонентом Camera.
entities
Список объектов в сцене
Методы #
open
Открывает сцену, делая её активной
add(...entities)
Добавляет сущности в сцену.
remove(...entities)
Удаляет сущности из сцены.
setSkyboxColor(color)
Устанавливает цвет фона.
addEventListener(type, cb)
Подписка на события касания/клика сцены.
removeEventListener(type, cb)
Отписка от событий
События #
События назначаются через addEventListener
"click"
Клик/тап по сцене (если попали в объект с Collider, ev.target укажет на него).
"touchstart"
Начало касания/жеста.
"touchmove"
Движение пальца/курсора.
"touchend"
Завершение касания/жеста.