Итак, создаешь блупринт актор (RotatorActor) в нем add component / static mesh и выбираешь тот объект, к-рый у тебя будет крутится.
Сам ВР:
Создаешь переменные:
Center (тип vector) (0,0,0) центр, "точка вращения".
Radius (тип vector) (100,0,0) начальный радиус. У переменных ставишь галочку Editable и Show 3D Widget. Теперь они отображаются, когда на сцену вытащишь свой ВР. Передвигая мышкой Radius ты будешь регулировать расстояние до центра вращения.
Создаешь переменные:
Rotation Speed (Float) поставь 50 и сделай ее Editable, это скорость вращения твоего объекта.
СurrentRotation (Float) текущее вращение.
TargetAct (Actor Reference) объект вокруг которого будет вращение. Сделай его Editable. Когда вытащишь ВР на сцену, то нажав на пипетку сможешь выбрать любой объект вокруг к-го будет вращение (в моем примере вращается вдоль оси Y). Пиши, если не разберешься.
Господа с большим...опытом, теперь обращаюсь к вам, чтобы не вставать дважды. Проверил, все работает корректно, но хочется довести до конца. Координаты Center и Radius являются локальными. При выборе объекта, вокруг к-го будет вращение в переменную Center записываются его мировые координаты. Из-за чего отображаемый в виде ромба Center улетает в стратосферу. Его новые значения могут быть (5027, 103, 490), которые остаются локальными. В то время как координаты Radius'а остаются неизменными (100,0,0).
Вопрос, как после выбора объекта вокруг к-го будет вращение, значение локальных координат Center'a осталось неизменным - (0,0,0)?