What most recomended class to extends for BluePrint?

Im trying to create a Weather system.
At Start, my first implementation is the Time of Day Calcs.
Some complicated calcs I want to use C++ another ones I want Use blue Print.
Basicaly as Web Programer (PHP), I know the concepts of MVC, and i want separete the visual things (in blueprint) from Control things (C++).

In resume, i want to create a Class with a Directional Light fully customizable, and add another components to this.
In my tests, im Using AActor as Parent Class, but i found some issues.


  • No mather what component I add, the arrows/move this are gone. The “BP” stays at 0,0,0 and i cant change nothing (transforms controls are gone).
  • When i attach a AtmosphericFog component, sometimes when I compile my BP, the editor crashes, when not, the “effect” just gone.
  • I added some variables (SunAngle pitch, SunDirection yaw, SunInclination Roll). In Play are fine, but in preview on editor everything stays at 0,0,0. (again transforms are gone).

Basically what I want is a class that natively behave as if I had dropped one DirectionalLight the editor.

Perhaps, a better class to implement this than AActor.

I’ve tried Directly extend a ADirectionalLight but I missed some features such as the ability to implement a Tick function, and leftover waste properties (components), to create a BluePrint.

AActor relation is needed if you want class that interacts with the world

1)Yes you can’t edit native i tried to find the way to make them editable but i didn’t find anything, you need to set inital varables (including transform) in constructor of the class
3)I think if you set variables in constructor they should apply in editor too and use PostEditChangeProperty to detect property of actor changes

No in class constructor not function, editor get default variables set in constructor, for example to scale you need to do this:

MeshComp->SetRelativeScale3D(FVector(0.075, 0.075, 0.075));

But maybe OnConstruction could work i don’t know depends if it’s called hen you place actor in editor, constructor works for sure

PostEditChangeProperty you place code that apply changes in propeties in editor so they can be seen in viewport

Maybe Needs to set the values on “OnConstruction” and Call it on “PostEditChangeProperty” ?

It Works! Just set um my “Init” values inside “OnConstruction” and it replicates to editor. Thanks again

But stills locked at 0.0.0 (transform)

I solved adding and ArrowComponent.