Как напрямую сопоставить переменную Lua с переменной C ++ ?

Я работаю над игровым движком на C ++, используя Lua для определения NPC.

Я могу определить прототип NPC следующим образом:

orc =
{
    name = "Generic Orc",
    health = 100
}

function orc:onIdle()
    print("Orc idles...")
end

а затем создать экземпляр "Orc" с entitySpawn (orc) . Это функция C ++, которая считывает такие значения, как здоровье и имя из данной таблицы, создает объект Entity в C ++ с заданными значениями и, кроме того, создает Таблица Lua для конкретного NPC.

Теперь я хотел бы иметь прямую связь между переменной orc.health в Lua и переменной-членом mHealth соответствующего объекта Entity в C ++, чтобы я мог назначить значение в Lua и сразу использовать его в C ++ и наоборот.

Возможно ли это вообще? Или мне нужно использовать функции setter / getter? Я взглянул на легкие пользовательские данные и дошел до сохранения указателя на переменную C ++ в Lua, но не смог присвоить значение.

6
задан Lightness Races with Monica 9 June 2011 в 18:10
поделиться