пока я нахожусь в редакторе). Но она не появляется в Details, но появляется, когда я нажимаю на другую Сплайн компоненту. Но как только я начинаю её редактировать - она удаляется. Что я делаю не так?
auto SplineTransform = Spline->GetRelativeTransform();
auto SplineLocation = SplineTransform.GetLocation();
SplineLocation.Y += 200.f;
SplineTransform.SetLocation(SplineLocation);
ModifiedSpline = Cast<USplineComponent>(AddComponentByClass(USplineComponent::StaticClass(), false, SplineTransform, false));
ModifiedSpline->SetMobility(EComponentMobility::Movable);
ModifiedSpline->CreationMethod = EComponentCreationMethod::SimpleConstructionScript;
ModifiedSpline->SetClosedLoop(true);
ModifiedSpline->AttachToComponent(RootComponent, FAttachmentTransformRules::KeepRelativeTransform);
ModifiedSpline->RegisterComponent();
Тебе нужен компонент только для визуализации в редакторе? В какой функции ты вызываешь этот код?
Просто метод обычный. Я хочу проверить как у меня строится мой сплайн для генерации сплайн меша. Теоретически мне это потом нужно будет только в методе OnConstruction
Я имею ввиду тот код, что ты прислал, откуда ты его вызываешь?
Посмотри в сторону PostEditProperties,
Довольно сложно сказать должен ли работать этот код и где здесь конкретно проблема, но я могу сказать как это сделать правильно: Если у тебя это всё происходит в акторе, то тебе нужно создать компонент через конструктор как CreateEditorOnlyDefaultSubobject Если в компоненте, то тебе нужно перенести всё это в OnRegister и создавать компонент через NewObject, ставить ему SetIsVisualizationComponent = true, CreationMethod = CreationMethod, в конце регистрация (это у тебя есть)
Ты имеешь ввиду создавать в конструкторе?
Да, если ты работаешь с актором, внутри которого есть компонент только для визуализации в редакторе, то правильно такой компонент создавать в конструкторе через CreateEditorOnlyDefaultSubobject (ну и, например, оборачивать его объявление в хэдере в WITH_EDITORONLY_DATA
Обсуждают сегодня