World Expression
World Expression - точечный объект, который выполняет произвольные выражения (скрипты) в пределах указанного расстояние и при наборе частота кадров . По умолчанию выражения выполняются с той же частотой кадров, что и основное приложение.
Используя World Expression, вы можете прикрепить скрипт к объекту в сцене. Для этого такой объект необходимо добавить как дочерний узел к World Expression. Дочерние узлы наследуют преобразования (если есть) узла World Expression.
Если есть вложенные узлы World Expression, дочерний узел последнего World Expression в иерархии наследует преобразования всех родительских узлов World Expression.
Например, используя World Expression, вы можете трансформировать объекты в сцене, включать и выключать звуки в зависимости от расстояния, включать и выключать поведение NPC, прикреплять объекты к камере (например, капли дождя на камере) и т.д. .
Смотрите также#
- Класс WorldExpression для управления World Expression через API
- Урок Добавление скриптов в проект
-
Набор сэмплов в папке <UnigineSDK>/data/samples/worlds/:
- expression_00 — expression_05
Создание World Expression#
Чтобы создать World Expression через UnigineEditor:
-
В Меню , выберите Create -> Logic -> Expression.
- Разместите World Expression где-нибудь в мире.
Прикрепление скрипта World Expression Script#
Есть два способа прикрепить скрипт World Expression через UnigineEditor:
-
Непосредственно в UnigineEditor в поле Source раздела World Expression в окне Parameters. Исходный код должен быть внутри фигурных скобок {}, поскольку они определяют область действия World Expression.
-
Прикрепление в виде файла сценария в поле File раздела World Expression. Файл сценария должен быть включен в область видимости World Expression в поле Source с использованием фигурных скобок {}:
В этом случае файл my_expression.h должен содержать следующий код:
log.message("WorldExpression is updated\n");
В файле сценария исходный код не должен заключаться в фигурные скобки {}.
Реализация скрипта#
Сам скрипт может быть реализован как простая последовательность вызовов функций или как набор функций и классов. Посмотреть примеры можно здесь .
Межскриптовое взаимодействие#
Такой сценарий может общаться со сценарием мира через соответствующие функции класса engine.world или с помощью World Trigger через обратные вызовы (см. перечисленные примеры выше ).
Функции скрипта#
Помимо функций библиотеки UnigineScript, есть также набор внутренних функций, доступных в скрипте World Expression. Список таких функций с описанием и примерами можно найти здесь .
Установка параметров World Expression#
Вы можете настроить следующие параметры World Expression на вкладке Node:
Update Distance Limit | Расстояние от камеры, в пределах которой выполняется выражение. |
---|---|
IFps | Постоянная длительность кадра (обратный FPS, 1 / FPS), используемая для выполнения выражения. Если установлен 0, выражение выполняется с той же частотой кадров, что и основное приложение. |
File |
Путь к файлу с исполняемым скриптом World Expression. Путь указан относительно каталога data. Этот файл должен быть включен в область видимости World Expression в поле Source. Это поле является необязательным, поскольку сценарий World Expression может быть реализован непосредственно через интерфейс UnigineEditor. Если файл скрипта был изменен, его следует обновить через UnigineEditor: щелкните справа от поля File. |
Source |
Исходный код скрипта World Expression. Это поле может содержать:
В обоих случаях фигурные скобки {} должны заключать код в поле. |