Какое отражение использует Unreal? - PullRequest
0 голосов
/ 15 октября 2019

Я точно знаю, что нереально использует систему отражений, чтобы иметь скрипты на С ++. Я также знаю, что он использует макросы, чтобы определить, как переменные должны отражаться движком. Вот что я не знаю :

Эти макросы определяют метаданные изнутри выполнения кода (заполнение списков, определение структур и т. Д.),или это просто маркеры для синтаксического анализатора, который генерирует больше кода на C ++, который затем используется механизмом для определения переменных, которые нужно отразить?

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

1 Ответ

1 голос
/ 15 октября 2019

Unreal Engine генерирует код C ++, который используется для системы отражения.

UHT анализирует заголовки, создает набор данных отражения, а затем генерирует код C ++, содержащий данные отражения (внося вклад в модуль .generated.inl), а также различные помощники ифункции thunk (для каждого заголовка .generated.h).

From https://www.unrealengine.com/en-US/blog/unreal-property-system-reflection

...