ProcessEvent на стероидах: сериализуемые вызовы функций в UE5 или как я готовлю материал для статей
В предыдущих двух статьях я разбирал K2Node - как устроены ноды Blueprint изнутри - и Blueprint VM : байткод, опкоды, стековую машину. Следующая на очереди - Reflection: UClass, UFunction, FProperty и вся система метаданных, на которой стоит движок. Готовясь к ней, я решил, что лучше всего разобраться в теме поможет практика. И тут подвернулся юзкейс: мне нужен был способ сконфигурировать вызов произвольной функции в редакторе и выполнить его в рантайме. Без хардкода, без кодогенерации, без десятка одинаковых обёрток. Так появился FunctionHandler - плагин для UE 5.6, в котором пригодилось всё, о чём я писал раньше: CustomThunk'и, ExpandNode, работа с FFrame и MostRecentProperty. Эта статья - про то, как всё сошлось в одном плагине, какие решения сработали, и на какие грабли я наступал.
https://habr.com/ru/articles/1010256/
#Кейс #Unreal_Engine #Unreal_Engine_5 #Программирование #C++ #Blueprint #StateTree #ProcessEvent #плагин

ProcessEvent на стероидах: сериализуемые вызовы функций в UE5 или как я готовлю материал для статей
В предыдущих двух статьях я разбирал K2Node - как устроены ноды Blueprint изнутри - и Blueprint VM : байткод, опкоды, стековую машину. Следующая на очереди про рефлексию: UClass, UFunction, FProperty...