понедельник, 1 июля 2019 г.

FungusLua. Команда ExecuteLua

Эта команда позволяет встроить скрипт Lua для выполнения как часть последовательности команд в блоке. Сценарий Lua, который нужно выполнить, можно указать в инспекторе или в текстовом файле так же, как компонент LuaScript.

Вы можете предоставить дополнительную LuaEnvironment для использования для выполнения. Если ничего не указано, LuaEnvironment будет выбран / создан автоматически. Если LuaEnvironment был установлен на родительской потоковой диаграмме, то эта среда будет использоваться по умолчанию.

Родительская Flowchart будет связана с глобальной переменной Lua до выполнения сценария Lua. По умолчанию имя привязки - «Flowchart», но вы можете изменить его на любое, используя свойство Lua Binding Name родительской потоковой диаграммы.

Вы также можете сохранить возвращаемое значение из сценария Lua в переменной Flowchart.

Оценка выражений


Команда Fungus If может сравнивать только 2 переменные одновременно. Для более сложных выражений, включающих несколько переменных или математические функции, вы можете использовать Lua для оценки выражения и сохранения результата в переменной Flowchart .
  1. Добавьте объект Блок-Схемы (Tools > Fungus > Create > Flowchart). Добавьте некоторые переменные в Блок-Схему.
  2. Добавить объект LuaBindings (Tools > Fungus > Create > LuaBindings)
  3. Добавьте привязку к игровому объекту Flowchart  и выберите компонент Flowchart .
  4. На Блок-Схеме добавьте команду ExecuteLua в блок для оценки сложного выражения. Сохраните возвращаемое значение в переменной логической Блок-Схемы.
  5. Добавьте команду If, которая проверяет значение логической переменной.

В команде Execute Lua вы можете использовать функцию getvar(), чтобы получить любые переменные Блок-Схемы, которые будут использоваться в выражении. Примечание: getvar() возвращает ссылку на объект переменной Fungus. Чтобы получить доступ к значению этой переменной, используйте свойство .value.

Пример кода


Вот пример сценария Lua, который оценивает сложное выражение, включающее 3 целочисленных переменных, определенных на связанной Блок-Схеме.

local v1 = getvar(flowchart, "Var1")
local v2 = getvar(flowchart, "Var2")
local v3 = getvar(flowchart, "Var3")
return (v1.value == v2.value or v3.value == 5)


Не забудьте использовать .value для доступа к значению, хранящемуся в объекте переменной, а не сам объект переменной!

Комментариев нет:

Отправить комментарий

Примечание. Отправлять комментарии могут только участники этого блога.