чтобы когда я менял значение в details, я мог приписать особую логику для этого?
BlueprintSetter не подходит
что ты имеешь ввиду относительно особой логики?
Не совсем понимаю почему не подходит Blueprint setter, раз вопрос задаётся про сеттеры и геттеры (т.к. это именно оно), ну а вообще PostEditChangeProperty
Тоже вспомнил про PostEdit. А ответ в том, что когда меняешь проверти в viewport, то PostEdit... вызывается, а сеттеры нет
Да все понятно про сеттеры, я просто до терминологии докопался)) Но для твоей задачи как раз нужен PostEditChangeProperty, внутри проверяешь, что изменилось именно нужное свойство и вызываешь функцию - стандартная практика :)
Немного странно, но в принципе не хуже, чем через проверти навешивать
А почему странно?
Получается функция, которая может разрастись на кучу ифов. И ещё вызывается лишний раз, когда можно навести сеттер, как это делается с BlieprintSetter
Может разрастись (и, бывает, разрастается, это абсолютно нормально в данном контексте). Не совсем понял что имеется ввиду под "навести" сеттер, но данная функция не вызывается в рантайме + она только для редактора. Ты же спрашивал именно про функционал редактора, имя ввиду details, это, что нужно
Тв имеешь ввиду кучу ифов под разные проперти? Можно создать tmap с ключами с именем проперти и значениями в виде массивов имен функций. Таким образом при постэдит из его проперти берешь имя и ищешь его в ключах. Если есть, через findfunction выполняешь функции указаннве соотвествующем массиве имен функций.
Тоже вариант, но само по себе решение кажется всё равно странным. Лишнюю мапу создавать, хранить в ней ссылки на функции, каждый раз будет проверятся мапа. Правда проверятся она должна только в редакторе, во время игры ресурсы тратиться не должны. Но спасибо за идею!
Обсуждают сегодня